python - 寻找素数 - 我做错了什么?
问题描述
我正在尝试生成一定数量(输入)的素数,仅使用“while”“for”和“If”等语句。例如,如果我输入“8”,程序应该返回 8 个素数 2,3,5,7,11,...等等。
下面是我的代码,但无论我输入什么数字,它似乎只给我 2 和 3。
非常感谢您的帮助!
num=input("enter the number of prime numbers needed:")
if num=='0' or num=="" or int(num)<0:
print("No data ^^")
else:
num=int(num)
i=2; N=3; prm=True
print(2); count=1
while(True):
if count==num:
break
i=2
while i<N:
if N%i==0:
prm=False
break
else:
i+=1
if prm==True:
print(N); count+=1
N+=1
解决方案
您只是忘记prm = true
在循环末尾添加:
num=input("enter the number of prime numbers needed:")
if num=='0' or num=="" or int(num)<0:
print("No data ^^")
else:
num=int(num)
i=2; N=3; prm=True
print(2); count=1
while(True):
if count==num:
break
i=2
while i<N:
if N%i==0:
prm=False
break
else:
i+=1
if prm==True:
print(N); count+=1
N+=1
prm=True
顺便提一句。你写的代码不是最干净的,也许你应该努力
推荐阅读
- javascript - 我正在尝试使用 Javascript 更改 CSS 元素,但它不起作用
- c# - 如果在 IIS 中作为虚拟目录运行,.net 核心应用程序错误 502.5
- aggregation - Clean Architecture中的单一职责原则,将UseCases聚合在一个UseCaseManager中,该UseCaseManager可以提供基于In & Out Object的UseCase。
- php - Mysql 在 xampp 上意外停止
- php - 声明有效但不会重定向?
- java - Spring Boot 和 Ajax 中的自动上传功能
- javascript - 过滤特定元素并单击相应按钮
- javascript - 如何使用 jquery 切换具有垂直文本和内容的垂直选项卡
- asp.net-core - NuGet.targets 错误:'.',十六进制值 0x00,升级到 .Net Core 2.1.1 后是无效字符
- javascript - 在我的数组显示中删除 NaN