用户:秋葵查看:4 回复:2 评论:4 创建时间:2018-12-30T14:36:49
在栏目的最后一期
提前祝大家新年快乐
在2019中完成自己2018未能实现的愿望!
像蝴蝶一样飞翔把!
题目1 梅森素数
分析:
1.定义判断质数的函数
2.开始无限循环,找出最小的梅森素数
3.打印结果
代码解析:
#导入math库
import math
#定义判断质素的函数
def is_prime(number):
#首先大于1
if (number > 1):
#其次等于2返回True
if (number == 2):
return True
#被2整出说再见
if (number % 2 == 0):
return False
#从3开始遍历到整形开方+1,每次+1
for current in range(3,int((math.sqrt(number) + 1)),2):
#如果为0返回False
if (number % current == 0):
return False
#既然都ok就True
return True
#小于1就False
return False
#获取数值
n = int(input())
#设置自变量i为0
i=0
#开始无限循环
while True:
i+=1
#设置b为2的i方-1
b = 2 ** i - 1
#b>n就停止循环
if (b > n):
break
#打印所在范围内的梅森素数
if (is_prime(i) and is_prime(b)):
print(b)
题目2 开关灯问题
分析:
1.初始化列表
2.逐一开关灯
3.遍历列表打印结果
代码解析:
#获取输入
a=int(input())
b=[1 for i in range(101)] #初始化101个灯
#循环每个同学
for i in range(1,a+1):
#该同学去开关所有灯
for j in range(1,101):
#如果可以被整出
if j % i==0:
#开关灯泡
if b[j]==0:
b[j]=1
else:
b[j]=0
#记录个数
c=0
#记录最后一个开着的
maxc=0
#遍历100次
for i in range(1,101):
#有就+1
if b[i]==1:
c+=1
maxc=i
#打印结果
print(c,maxc)
题目3 传染鱼
分析:
1.获取输入
2.找出递归
代码解析:
#获得数据列表
a=input().split()
#列表赋值
x,n=int(a[0]),int(a[1])
#定义递归
def f(x,n):
#如果次数为1则感染数+1
if n==1:
return x+1
#返回次数-1后乘以感染鱼的数量
return f(x,n-1)*(x+1)
#打印递归函数结果
print(f(x,n))