![](/img/trans.png)
[英]python code trying to find prime number. Code is counting not prime number. Can't find why
[英]Unable to find the mistake in prime number code in python
n=5;count=2;i=3;j=2;
while (count <= n):
for j in range (2,i):
if(i%j == 0):
break
if(j==i):
print i
count = count +1
i = i+1
我试图找到前n个素数但不知何故这个代码似乎没有编译。 该程序陷入了for循环 。 我尝试使用相同的逻辑在C语言中编写代码,但效果似乎不错,但是由于我需要大量支持,因此python似乎是显而易见的选择,因此希望在python中运行。 任何帮助都会很棒。
range(a, b)
从a
到b-1
。
n=5;count=2;i=3;j=2;
while (count <= n):
for j in range (2,i):
if(i%j == 0):
break
if(j==i-1):
print i
count = count +1
i = i+1
我打赌你有
int j;
for(j = 2; j < i; j++) {
}
因此,在质数循环结束时, j
将为i
。
使用range
时,Python不会超出限制。
这对于循环之后的else:
关键字的其他模糊语法很有用。 正如其他人所评论的那样,成功完成for
循环的测试结果是一个。
相反,尝试使用else
来测试是否成功完成:
for j in range (2,i):
if(i%j == 0):
break
else:
print i
count = count +1
你的问题在这里:
for j in range (2,i):
这检查j = 2,3,4 .... i-1。 因此,您的代码永远不会运行:
if(j==i):
print i
count = count +1
因此计数永远不会改变。 因此,您将获得一个无限的while循环。 将支票更改为
if(j==i-1):
print i
count = count +1
在Python 3中,它是print()
,而不是print
。 更改此行时代码将编译:
print(i)
你似乎也有一个无限循环,但我会让你调试它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.