首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在python中找到前N个素数?

如何在python中找到前N个素数?
EN

Stack Overflow用户
提问于 2018-07-01 02:19:57
回答 6查看 14.5K关注 0票数 1

我是python的新手,所以我不能完全理解如何使用循环。我目前正在编写一段代码,我必须找到前N个质数。期望的结果是,如果你输入5,它输出2,3,5,7和11,但无论我输入什么'max',输出总是2和3。有什么方法可以改善这一点吗?

代码语言:javascript
复制
max=int(input("How many prime numbers do you want: "))
min=2
while(min<=(max)):
  for c in range(2, min):
    if min%c==0:
      break
  else:
    print min
    min=min+1
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2018-07-01 02:23:07

您只需在else块中递增min,即,如果所有cmin % c都不为零,即,如果min是质数。这意味着代码将不能超过任何组合数字。您可以通过取消缩进一个级别的min=min+1来修复此问题,以便它与forelse对齐。

票数 2
EN

Stack Overflow用户

发布于 2018-07-01 03:06:19

代码语言:javascript
复制
number = int(input("Prime numbers between 2 and "))
for num in range(2,number + 1):
       if num > 1:
            for i in range(2,num):
                if (num % i) == 0:
                     break
            else:
                print(num)
票数 2
EN

Stack Overflow用户

发布于 2018-11-06 10:18:12

解决方案:获取第n个质数条目。遍历质数的每个自然数,并将质数附加到列表中。当列表的长度满足用户的第n个素数条目时,终止程序。

代码语言:javascript
复制
# Get the number of prime numbers entry.
try:
    enterNumber = int(input("List of nth prime numbers: "))
except:
    print("The entry MUST be an integer.")
    exit()
startNumber = 1
primeList = []
while True:
    # Check for the entry to greater than zero.
    if enterNumber <= 0:
        print("The entry MUST be greater than zero.")
        break
    # Check each number from 1 for prime unless prime number entry is satisfied.
    if startNumber > 1:
        for i in range(2,startNumber):
            if (startNumber % i) == 0:
                break
        else:
            primeList.append(startNumber)
    if (len(primeList) == enterNumber):
        print(primeList)
        break
    else:
        startNumber = startNumber + 1
        continue
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51117445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档