模/模在python中可以处理大数吗?

模/模在python中可以处理大数吗?,python,modulo,Python,Modulo,在一个大的数字上使用mod,比如600851475143,并不能给出正确的答案,有人知道为什么吗 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 我正在努力创建自己的素数函数,它对较小的数很有效,但当数变大时,模块化似乎会中断。我只是在玩弄py

在一个大的数字上使用mod,比如600851475143,并不能给出正确的答案,有人知道为什么吗

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

我正在努力创建自己的素数函数,它对较小的数很有效,但当数变大时,模块化似乎会中断。我只是在玩弄python和Euler挑战,我的头撞在墙上已经有一段时间了

多谢各位

>>> print 600851475143 / 2
300425737571
>>> print 600851475143 % 2
1
>>> 4 / 2
2
>>> 4 % 2
0

除此之外:您的问题与大数字无关—它只是Python中的整数运算。

大数字以“3”结尾,任何以3模2结尾的数字都是1。所以这是正确的。您给出的第一行是不正确的,但我不能在这里用python 3.2重现这一点。你确定你显示了正确的值吗?为什么你使用2.0而不是2?关于以3模2结尾的数字将是1,你是正确的,我应该看到这一点,但我的python版本在我进行简单除法时没有计算余数,这导致了我的错误结论<代码>打印600851475143.0/2.0返回
300425737572.0
非问题主题,但自提出project euler以来。考虑使用筛选方法获得早期Euler问题的素数,例如我做了一点测试,而<代码> 600851475143/2 < /Cord>确实在Python 2.5和2.6上返回了错误的答案。在Python2.7和3.2上,答案是正确的(没有测试3.0和3.1)。