【发布时间】:2015-05-22 11:47:09
【问题描述】:
我试图找出我在这里做错了什么,基本上这个函数是用于计算模块倒数到a-1 mod m。但是程序出错了。
有人能指出导致错误的原因吗?
//calculating the inverse of the public key, for getting private key d. long
long long inverse(long long a, long long m)
{
long long p = a, q = m, t;
//Euclidean algorithm
long long x = 0, y = 1, z = (long long)q/p;
//start recursion
while(p != 1 && q != 1)
{
t = p;
p = q % p;
q = t;
t = y;
y = x - y * z;
x = t;
z = (long long)q/p;
}
y = (long long)y % m;
if(y < 0)
{
y += m;
}
//return inverse number;
return y;
}
【问题讨论】:
-
您可能没有为
inverse()声明原型。在源文件顶部声明:long long inverse(long long, long long); -
请勿将代码作为图片发布! “得到错误”应该是什么意思?哪些错误?
-
抱歉,确切的错误:'inverse' 的类型冲突
-
at long long ^ inverse(...)
标签: c function compiler-errors inverse modular