x = 55
for n in range(2,x):
if x % n == 0:
print 'Not a prime'
break
else:
print 'Prime'
break
这适用于所有数字,除了55 ...
PS。我是编程和尝试学习python的新手。
答案 0 :(得分:1)
您的算法存在逻辑问题,
e.g。
x = 55,然后是第一个循环,n = 2.由于55%2!= 0,你进入Prime分支并打破for循环。所以你得到Prime的结果,这是错误的。
最简单的修改是:
x = 55
n = 2
while n < x:
print(n)
if x % n == 0:
print ('Not a prime')
break
n = n + 1
if n == x:
print('Prime')
print(n)
可以帮助您进行调试。实际上,验证最多sqrt(x)
因子就足够了。