这是公式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
答案 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