【发布时间】:2015-01-07 23:17:40
【问题描述】:
我一直在尝试压缩我的代码以在 python 中进行素数测试,以便它利用列表推导,但由于某种原因它没有返回正确的结果:
def isPrime(n):
if n > 1:
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
这是我当前素性测试的代码,但我想对其进行压缩:
def isPrime(n):
if n > 1:
return [False for i in range(2, int(n ** 0.5) + 1) if n % i == 0]
return True
我尝试了上述方法,但它输出所有非素数,最多为 n。我做错了什么?
【问题讨论】:
-
仅供参考:Python 中有大量与素数相关的代码:stromberg.dnsalias.org/~dstromberg/primes
标签: python list-comprehension primes