最近比较低沉,事情比较多,做一道简单编程题吧。。。
这个题不外乎就是两个方面,一个是判断素数,一个是生成等差数列,那就把这两个结合一下就是了,先写一个函数判断是否为素数(要注意的是1不是素数也不是合数。。虽然在这个题里没啥用,然后就是素数的话是除了1和本身没有公约数的数。。我一开始把返回值逻辑写反了,尴尬。然后就是使用sqrt的方法可以降低复杂度)。
以下为求素数:
import math
def isS(num):
if num == 1:
return 0
elif num == 2:
return 1
else:
for i in range(2,int(math.sqrt(num))+1):
if num % i == 0:
return 0
return 1
然后就是生成等差数列,这个就是不断累加;再加上求素数,设置一个flag记录素数个数就是了,代码如下。
flag = 0
start = 367-186
increase = 186
while flag < 151:
start += increase
if(isS(start)):
flag += 1
print(start)
小结:今天没有新收获,就当编程练手防手生。