标签:bre python 效率 def pen 问题 main 质数 输出
输入 10,输出:4(2,3,5,7); 输入:20, 输出: 8(2,3,5,7,11,13,17,19);
针对小于N的每个正整数x,我们可以遍历从2到x-1遍历去试除,当出现一个数能被整除,那这个数就不是质数;当然这种方法也是最容易想到的方法,但效率也是最低的方法;
def prime(n): m = 0 res = [] for i in range(2, n): for j in range(2, i-1): if i % j == 0: break else: res.append(i) m += 1 return m,res if __name__ == "__main__": n = 20 print(prime( n))
我们可以遍历从2到x/2的数去试除,这样子相对于第一种方法节省了近一半的时间;
def prime( n): m = 0 for i in range(2, n): for j in range(2, int(i/2)+1): if i % j == 0: break else: m += 1 return m
标签:bre python 效率 def pen 问题 main 质数 输出
原文地址:https://www.cnblogs.com/ivyharding/p/11367911.html