我在八度音阶中使用RSA算法,但它没有以正确的方式工作。当我尝试使用" ^"功能。请查看下面的示例:
>> mod((80^65), 133)
终端给了我:
ans = 0
我无法解决这个问题,即使我的系统计算器返回正确的数字也很有趣(54)
答案 0 :(得分:3)
以正确的方式计算,您可以使用快速功率模数算法。 在c ++中,检查下面的函数 - > a ^ b mod m:
int power_modulo_fast(int a, int b, int m)
{
int i;
int result = 1;
int x = a % m;
for (i=1; i<=b; i<<=1)
{
x %= m;
if ((b&i) != 0)
{
result *= x;
result %= m;
}
x *= x;
}
return result;
}