下面的代码用于列出求1到N之间的所有质数,错误的说法是( )。
def is_prime(N):
if N <= 1:return False
finish_number = int(N ** 0.5) + 1
for i in range(2, finish_number):
if N % i == 0:
return False
return True
#列出1-N之间所有质数
N = int(input())
print([n for n in range(1,N+1) if is_prime(n)])
埃氏筛算法相对于上面的代码效率更高
线性筛算法相对于上面的代码效率更高
上面的代码,有很多重复计算,因为不是判断单个数是否为质数,故而导致筛选出连续数中质数的效率不高
相对而言,埃氏筛算法比上面代码以及线性筛算法效率都高