检查数字是否为素数的程序

-1 python primes primality-test

您好我已创建此程序以检查数字是否为素数.它有效,但出于某种原因说999是素数.我的错误在哪里 如果有人解释的话会很棒.谢谢!

这是我的计划:

number = raw_input('Enter a Number: ')
nnumber = int(number)
prime_range = range(2, nnumber)

for x in prime_range:

    if nnumber % x == 0:
        print 'Not a Prime Number!'
        break

    else:
        print 'Prime Number!'
        break
Run Code Online (Sandbox Code Playgroud)

Ama*_*dan 6

跟踪它.x从开始2,然后测试999 % 2; 它是1,所以else执行,"素数!" 打印出来,循环被打破了.计划结束.

相反,你需要打印"素数!" 只有当你测试了所有的可能性x.最简单的方法是取消else:(并删除break):

for x in prime_range:

    if nnumber % x == 0:
        print 'Not a Prime Number!'
        break

else:
    print 'Prime Number!'
Run Code Online (Sandbox Code Playgroud)

Python的执行elsefor时候forwithoout被打破完成:你想要什么.