x = math.fmod(c,m)OverflowError:int太大而无法转换为float

时间:2014-11-04 01:13:08

标签: python

这是公式a ^ b = c(mod m) a = 122 b = 177 m = 197 c =?

这是Python代码;

a=int(input("Lütfen üssünü almak istediğiniz sayıyı giriniz: "))

b=int(input("Lütfen sayının üssü değerini giriniz: "))

m=int(input("Lütfen hesaplanacak Mod değerini giriniz: "))

import math

c=a**b

x=math.fmod(c,m)

print(x)

但是我收到了一个错误。你能救我吗?

x=math.fmod(c,m)
OverflowError: int too large to convert to float

1 个答案:

答案 0 :(得分:1)

由于Python中的整数运算永远不会溢出,因此可以使用整数模运算符(%)而不是fmod()

print ((122**177) % 197)

但是,任何将此问题分配给您的人都希望您应用模数算术的这个属性:

(x * y) % m == ((x % m) * y) % m

因此,如果我们经常应用模数运算符,即使在具有有限整数的编程语言中,我们也不会溢出:

product = 1
for i in range(177):
    product = (product * 122)%197
print product