素数PYTHON:

时间:2015-05-07 20:59:06

标签: python numbers

我无法编写程序,找到所有素数到第n个数字并打印出来。到目前为止我所拥有的,如果有人可以帮助并解释我做错了什么,我们将不胜感激:

def isPrime (n):
   primeList = [2]
    for i in range (3, n):
        if n%2 == 0 or n%3 == 0:
            break
        else:
            primeList.append(i)
            break
    return (primeList)

2 个答案:

答案 0 :(得分:2)

您必须检查您的号码是否可以对您添加的所有素数进行整除,而不是检查它是否可以被2和3整除。

def isPrime (n):
   primeList = [2]
   for i in range (3, n):
       isPrime = True
       for prime in primeList:
           if i % prime == 0:
               isPrime = False
               break
       if isPrime:
           primeList.append(i)
   return primeList

答案 1 :(得分:1)

是的,你需要一个足够的方法来确定一个数字是否为素数。就目前而言,您只检查数字是否可以被2和3整除,而不是5,或7或更高。您可以通过循环显示小于当前数字的数字来检查:

    for i in range(3, n):
        for j in range(2, i):
            if i % j == 0:
                break
            primeList.append(i) # only runs if loop not broken

    return primeList

如果你想要

,我会留给你优化它