计算素数

孤街浪徒 提交于 2019-12-01 10:19:09

题目:计算0-100的所有的素数。

素数:素数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。

很容易得出下面的代码

def get_prime(n):
    res = []
    for i in range(2, n):
        for j in range(2, i):
            if i % j == 0:
                break
        else:
            res.append(i)
    return res
求素数

但是经过分析,我们发现完全可以利用已知的信息,如果一个数不是素数,那么它的所有整数倍也肯定不是素数,因此,我们只需要判断,它是否是素数的整数倍就可以了。

然后经过优化后的代码可以写成:

def get_prime1(n):
    res = []
    for i in range(2, n):
        for j in res:
            if i % j == 0:
                break
        else:
            res.append(i)
    return res
求素数(优化)

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!