【求助】关于CRT的一个小问题
  • 板块学术版
  • 楼主some_side
  • 当前回复6
  • 已保存回复6
  • 发布时间2023/1/31 07:20
  • 上次更新2023/10/24 02:27:43
查看原帖
【求助】关于CRT的一个小问题
763992
some_side楼主2023/1/31 07:20

我在OIwiki上找到的CRT代码。

LL CRT(int k, LL* a, LL* r) {
  LL n = 1, ans = 0;
  for (int i = 1; i <= k; i++) n = n * r[i];
  for (int i = 1; i <= k; i++) {
    LL m = n / r[i], b, y;
    exgcd(m, r[i], b, y);  // b * m mod r[i] = 1
    ans = (ans + a[i] * m * b % n) % n;
  }
  return (ans % n + n) % n;
}

想问一下为什么return的是(ans+n)%n,而不是直接ans%n?

2023/1/31 07:20
加载中...