码迷,mamicode.com
首页 > 其他好文 > 详细

计算素数

时间:2019-10-15 21:22:38      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:优化   除了   eve   pow   alt   其他   它的   利用   整数   

题目1:计算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
求素数(优化)

 题目2:判断一个数是否为素数

在一般领域,对正整数n,如果用2到 技术图片之间的所有整数去除,均无法整除,则n为质数。

技术图片
def is_prime(num):
    import math
    if num == 1:
        return False
    for i in (2, int(math.sqrt(num)) + 1):
        if num % i == 0:
            return False
    return True
判断素数

 

计算素数

标签:优化   除了   eve   pow   alt   其他   它的   利用   整数   

原文地址:https://www.cnblogs.com/walle-zhao/p/11680269.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!