八度 - 如何操作大数字

时间:2015-08-03 15:03:24

标签: numbers octave

我在八度音阶中使用RSA算法,但它没有以正确的方式工作。当我尝试使用" ^"功能。请查看下面的示例:

>> mod((80^65), 133)

终端给了我:

ans = 0

我无法解决这个问题,即使我的系统计算器返回正确的数字也很有趣(54)

1 个答案:

答案 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;
}