实验吧编程-找素数

最近比较低沉,事情比较多,做一道简单编程题吧。。。
这个题不外乎就是两个方面,一个是判断素数,一个是生成等差数列,那就把这两个结合一下就是了,先写一个函数判断是否为素数(要注意的是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)

小结:今天没有新收获,就当编程练手防手生。

你可能感兴趣的:(实验吧编程-找素数)