¬∃k ∈ [2, n) : n ≡ 0 mod k
方法一
def is_prime(n):
k = 2
while k < n:
if n % k == 0:
return False
k += 1
return True
方法二
def is_prime(n):
return len(filter(lambda k:n%k ==0 for k in range(2,n)))==0
def primes(m):
return filter(is_prime, range(2,m))
方法三
def is_prime(n):
return True not in [n%k==0 for k in range(2,n)]
def primes(m):
return [n for n in range(2,m) if is_prime(n)]
range可以用xrange替换
方法四:
def is_prime(n):
return not any(n%k==0 for k in xrange(2,n))