python算法题记录(一)

接下来写一下算法题的实现 刚开始都是一些简单的算法实现,就在刚刚我写判断一个不大于N的最大素数时 我竟然没有立马写出来,,,,崩溃。

接下来打算每天写一篇算法的实现,今天开始看算法的视频 然后对里面提到的算法进行实现,记录在这里啦

对了这几天一直在找实习,我发现有点受打击,好好打基础,还有不到一年 ,加油!

Day1 “写出不大于N的最大素数”
今天在看枚举时 举了这个例子 乍一看很简单啊 ,秒做的好嘛,竟然还想了一会,,,智商啊,,,

# -*- coding: utf-8 -*-
"""
Created on Tue Apr 17 20:39:39 2018

@author: xuanxuan
"""
*****************************第一道题目**********************************************

#在讲枚举时 第一个算法就是求小于N的最大素数:


#首先定义一个函数 来判定该数是不是素数
def prim(n):
    stop=1
    for i in range(2,n):
        if n%i==0:
            stop=0
        if stop==0:
            return 0
    '''
    if stop==1:
        print("{}为素数".format(n))
    else:
        print("{}为不是素数".format(n))
    '''
    return n


if __name__=="__main__":
    N=eval(input("please input a number:"))
    maxprim=2   #初始化该素数为2
    for i in range(2,N+1):
        if i%2==0:  #主要是在判断时只看那些奇数值 偶数值可以直接去掉了
            continue
        else:
            a=prim(i)
            if a!=0:  #就是该数在调用prim时返回的是素数
                maxprim=a  #如果该数不等于0 也就是是素数的话 就不断更新该最大素数的值
    print(maxprim)


************************************第二道题目*************************************
百钱百鸡的问题 就是一只公鸡值5钱,一只母鸡值3钱,三只小鸡值1钱,如果想用100钱买100鸡应该怎么买

嗯 这个写的挺快的,,,hhhhhh
其实很简单其实就是解方程的思想 逆向思维就可以啦

# -*- coding: utf-8 -*-
"""
Created on Tue Apr 17 21:17:12 2018

@author: xuanxuan
"""

#百钱百鸡的问题
#公鸡一只值五钱,母鸡一只值三钱,小鸡三只值一钱  如果用100钱买100只鸡 怎么买

def chicken_money(l,m,n):
    return 5*l,3*m,(1/3)*n

if __name__=="__main__":
    M=[]
    F=[]
    S=[]  #这三个数组分别存公鸡母鸡小鸡的数目
    for i in range(21):  #因为总共是100钱 公鸡一只5钱 如果只买公鸡的话只能买20只
        for j in range(34):
            if (100-5*i-3*j)<0:
                continue
            else:
                s=(100-5*i-3*j)/(1/3)  #求出公鸡i只 母鸡j只条件下小鸡的个数  #只有此时才能把符合条件的存起来
                if i+j+s==100:
                    M.append(i)
                    F.append(j)
                    S.append(s)
    print("最终的公鸡的列表为\n{}\n,母鸡的列表为:\n{}\n小鸡的列表分别为:\n{}\n".format(M,F,S))


你可能感兴趣的:(python算法题记录(一))