题目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
判断素数
原文地址:https://www.cnblogs.com/walle-zhao/p/11680269.html
时间: 2024-11-25 17:19:39