-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)
跟踪它.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的执行else的for时候forwithoout被打破完成:你想要什么.