输出:import math
#here i try to use trial division to validate whether a number is false or not
def isPrime(n):
d = {}
u = math.floor(math.sqrt(n))
i = 2
while (i <= u):
if (n % i == 0):
return False
i +=1
return True
#here I attempt to find all the prime numbers between 1 and 5000
print(isPrime(n) for n in range(1,5000))
而不是我试图获得的素数列表。
del *.*
答案 0 :(得分:1)
您构建了一个生成器,然后告诉Python打印对象。这就是你得到的。根据您的描述,我认为您需要一个列表理解,它将为您提供素数列表。
试试这个:
print ( [n for n in range(1, 5000) if isPrime(n) ] )
请注意,您要打印素数,不来自 isPrime 的返回值。
答案 1 :(得分:0)
我认为你要做的是:
import math
def isPrime(n):
u = math.floor(math.sqrt(n))
i = 2
while (i <= u):
if (n % i == 0):
return False
i +=1
return True
for n in range(1, 5000):
print(isPrime(n))