
程序代码如下:
print("To determine whether the prime number") primenumbertext=input("Enter a number:") primenumber=float(primenumbertext) testnumber=2 while True: if testnumber==primenumber: print(primenumbertext+" is prime number!") input() break elif primenumber%testnumber==0: testnumbertext=str(testnumber) print(primenumbertext+" can be divisible by "+testnumbertext+" !") input() break testnumber=testnumber+1 1 Yinz 2017 年 1 月 7 日 Python3 的求模运算里面用的是浮点数除法,超大奇数在浮点数除法时可能会丢失精度,导致结果错误。所以你把程序里面的超大整数套一层 Decimal 封装就好了。 t/243078#r_2718109 |
2 Chichele 2017 年 1 月 7 日 md 你自己将输入值转成 float 了 |
3 zonyitoo 2017 年 1 月 8 日 primenumber=float(primenumbertext) 闲得蛋疼? |
4 Kilerd 2017 年 1 月 8 日 via iPhone 质数还能是 float ??? BTW ,质数判定算法建议用概率算法。(前段时间研究 1 个月的感受。) |