python中的素数公式适用于除55之外的所有数字

时间:2017-10-14 04:49:35

标签: numbers primes

x = 55

for n in range(2,x):
    if x % n == 0:
        print 'Not a prime'
        break

    else:
        print 'Prime'
        break

这适用于所有数字,除了55 ...

PS。我是编程和尝试学习python的新手。

1 个答案:

答案 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)因子就足够了。