求助小费马定理的一个小问题
  • 板块学术版
  • 楼主huanyizhiyuan
  • 当前回复4
  • 已保存回复4
  • 发布时间2024/10/14 21:30
  • 上次更新2024/10/14 23:39:11
查看原帖
求助小费马定理的一个小问题
1010349
huanyizhiyuan楼主2024/10/14 21:30

原题目:

https://codeforces.com/contest/615/problem/D

疑惑点:

一个数的指数会爆i64,所以采用小费马定理不断地取模,确保不爆掉,但是不理解的是,有题解用的是 2×(mod1))2 \times (mod - 1)),请问这是为什么,为什么使用模数 mod1mod - 1就会导致错误,如果能解答,能麻烦给我一个例子吗?

for (auto [u, v] : mp)
{
  // 小费马定理。
  num = num * (v + 1) % (2 * (mod - 1));

  if(v & 1)
    ok = false;
  else
    origin = origin * ksm(u, v / 2) % mod;
}

完整的代码: https://www.luogu.com.cn/paste/44vje9h4

2024/10/14 21:30
加载中...