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