程序代码如下:
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-01-07 21:05:25 +08:00
Python3 的求模运算里面用的是浮点数除法,超大奇数在浮点数除法时可能会丢失精度,导致结果错误。所以你把程序里面的超大整数套一层 Decimal 封装就好了。
https://www.v2ex.com/t/243078#r_2718109 |
2
tigerstudent 2017-01-07 23:41:07 +08:00
md 你自己将输入值转成 float 了
|
3
zonyitoo 2017-01-08 03:02:56 +08:00
primenumber=float(primenumbertext)
闲得蛋疼? |
4
Kilerd 2017-01-08 08:20:53 +08:00 via iPhone
质数还能是 float ???
BTW ,质数判定算法建议用概率算法。(前段时间研究 1 个月的感受。) |