以下示例在Python 2和Python 3中均失败:
>>> n=12345>>> ((n**8)+1) % (n**4) is 1False>>> ((n**8)+1) % (n**4) == 1True
原因略有不同。Python 2将
int类型用于小整数,并将
long类型用于任意精度值。仅对
int类型进行插值,因此示例在
1L返回a时失败。
Python
3仅使用任意精度类型(并将其重命名为
int)。该示例失败,因为余数计算在内部计算值1并将其返回。仅当创建对象并且在计算开始时创建对象且该对象的值为1时才进行内部检查。



