用于查找素数的Python程序

时间:2018-02-24 08:01:56

标签: loops for-loop while-loop

我是python编程的新手,我一直坚持使用这个程序,并想知道这将如何执行,

for i in range (2,30):
j=2
counter=0
print(i,j)
while j<i:
    if i%j==0:
        counter=1
        j=j+1
    else:
        j=j+1
if counter == 0:
    print(str(i)+" is a prime number")
else:
    counter = 0

我确信当代码到达while j<i时,j和i的值都是2,条件应该是假的,因为coz 2不小于2.

那么这段代码如何完美地执行并打印预期的输出呢?

对不起,如果我是一个菜鸟:P

1 个答案:

答案 0 :(得分:0)

您的代码有效,但缩进已被破坏。

我已经轻微简化了您的代码,以表明它没有问题。

for i in range (2,30):
    j=2
    prime=1
    while j<i:
        if i%j==0:
            prime=0
            j = i
        j=j+1
    if prime == 1:
        print(str(i)+" is a prime number")

这不是一个理想的解决方案,您可以添加许多优化,但它可以完成这项工作。