0
在大数字上使用mod(如600851475143)没有给出正确的答案,任何人都知道为什么?python模数/模可以在大数字上工作吗?
print 600851475143/2.0
print 600851475143 % 2.0
print 4/2.0
print 4 % 2.0
600851475143/2.0 = 300425737572.0
600851475143%2.0 = 1.0
4/2.0 = 2.0
4%2.0 = 0.0
我正在创建自己的质数功能,它适用于较小的数字,但模块似乎在数字变大时破坏。我只是在与蟒蛇和欧拉挑战混在一起,现在已经把我的头撞墙了一段时间了。
谢谢。
大数字以“3”结尾,任何以3模2结尾的数字都是1.所以这是正确的。你给出的第一行是不正确的,但是我不能在这里用python 3.2重现。你确定你显示了正确的值吗? – 2011-03-28 06:35:36
为什么你使用2.0而不是2? – 2011-03-28 06:44:09
对于以3结尾的数字,模2的结果是1,我应该已经看到了,但是当我做简单的分割时,我的python版本没有计算出余数,这导致了我的错误结论。 '打印600851475143.0/2.0'返回'300425737572.0' – 2011-03-28 06:47:16