接下来写一下算法题的实现 刚开始都是一些简单的算法实现,就在刚刚我写判断一个不大于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))