Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 素数:_Python_Numbers - Fatal编程技术网

Python 素数:

Python 素数:,python,numbers,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) bre

我在写一个程序时遇到了麻烦,这个程序把所有素数都转换成第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和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

是的,你需要一个足够的方法来确定一个数是否是素数。目前,您只检查该数字是否可被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

如果您希望

格式在您的评论中丢失,我将让您对其进行优化。请编辑你的帖子,从你的评论中添加代码,然后删除评论。你看过关于寻找素数的数百个其他问题吗?向下滚动,查看“相关”下的右侧。这些问题在你最初撰写问题时也会出现,但你显然忽略了它们,即使你可以在那里找到答案。素数的定义与你的代码相矛盾。如果数字不可被2整除,也不可被3整除,那么就加上数字,但是像5、7之类的数字呢?它们也是素数,不能被2和3整除。此外,没有理由在这里中断。Break结束了封闭的循环。每个问题都可能重复,即使是关于查找素数的问题也可能重复。如果OP需要优化,并且正在努力,我会添加优化,我不想从中获得所有乐趣@如果n%j==0?真正地