找出 2 到 n 之间的质数个数

Find number of prime numbers between 2 and n

我正在尝试找出 2 到 n 之间的质数个数,其中 n 由用户提供。我似乎无法让它发挥作用。这是我的代码:

>>> def numOfPrime(n):
    count = 0
    for i in range(2,n):
        p = True
        for j in range(2,i):
            if i % j ==0:
                p = False
    if  p == True:
        count += 1

    return count

>>> numOfPrime(100)
0

您的 if 块的缩进不正确。它应该在循环中。

def numOfPrime(n):
    count = 0
    for i in range(2,n):
        p = True
        for j in range(2,i):
            if i % j ==0:
                p = False
        if  p == True:
            count += 1

    return count

现在 numOfPrime(100) returns 25,正确地解释了 2、3、5、7、11、13、17、19、23、29、31、37、41、43、 47、53、59、61、67、71、73、79、83、89 和 97。