在前一百多个数上对拍,一致几次
测过的都对,剩下的没测
测过
全部
下面 fast_prime 只拿 2、3、5、7 去试除。把它和正确版在 2~120 上对拍一遍:
def ok_prime(n):
if n < 2:
return False
d = 2
while d * d <= n:
if n % d == 0:
return False
d += 1
return True
def fast_prime(n):
"""只拿 2、3、5、7 试除——看起来又快又对"""
if n < 2:
return False
for d in (2, 3, 5, 7):
if n == d:
return True
if n % d == 0:
return False
return True
same = sum(1 for n in range(2, 121)
if fast_prime(n) == ok_prime(n))
print(same)
全部评论