素数列表 - 意外输出

时间:2017-10-10 17:03:41

标签: python python-3.x primes

输出: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 *.*

2 个答案:

答案 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))