当前位置: 首页 > news >正文

高精度快速幂

高精度快速幂

求解 \(n^k \bmod p\),其中 \(0\le n,k \le 10^{1000000},\ 1\le p \le 10^9\)。容易发现 \(n\) 可以直接取模,瓶颈在于 \(k\) See。

魔改十进制快速幂(暴力计算)

该算法复杂度 \(\mathcal O({\tt len}(k))\)

int mypow10(int n, vector<int> k, int p) {int r = 1;for (int i = k.size() - 1; i >= 0; i--) {for (int j = 1; j <= k[i]; j++) {r = r * n % p;}int v = 1;for (int j = 0; j <= 9; j++) {v = v * n % p;}n = v;}return r;
}
signed main() {string n_, k_;int p;cin >> n_ >> k_ >> p;int n = 0; // 转化并计算 n % pfor (auto it : n_) {n = n * 10 + it - '0';n %= p;}vector<int> k; // 转化 kfor (auto it : k_) {k.push_back(it - '0');}cout << mypow10(n, k, p) << endl; // 暴力快速幂
}

扩展欧拉定理(欧拉降幂公式)

\[n^k \equiv \left\{\begin{matrix} n^{k \bmod \varphi (p)} & \gcd(n,p)=1 \\ n^{k \bmod \varphi(p) + \varphi(p)} & \gcd(n,p)\neq 1 \wedge k\ge\varphi(p)\\ n^k & \gcd(n,p)\neq 1 \wedge k<\varphi(p) \end{matrix}\right.\]

最终我们可以将幂降到 \(\varphi(p)\) 的级别,使得能够直接使用快速幂解题,复杂度瓶颈在求解欧拉函数 \(\mathcal O(\sqrt p)\)

int phi(int n) { //求解 phi(n)int ans = n;for (int i = 2; i <= n / i; i++) {if (n % i == 0) {ans = ans / i * (i - 1);while (n % i == 0) {n /= i;}}}if (n > 1) { //特判 n 为质数的情况ans = ans / n * (n - 1);}return ans;
}
signed main() {string n_, k_;int p;cin >> n_ >> k_ >> p;int n = 0; // 转化并计算 n % pfor (auto it : n_) {n = n * 10 + it - '0';n %= p;}int mul = phi(p), type = 0, k = 0; // 转化 kfor (auto it : k_) {k = k * 10 + it - '0';type |= (k >= mul);k %= mul;}if (type) {k += mul;}cout << mypow(n, k, p) << endl;
}
http://www.hskmm.com/?act=detail&tid=38080

相关文章:

  • smartproxy API 代理—构建一体化可观测与可回滚体系 - Smart
  • 快读
  • 我爱学算法之—— 模拟(下) - 教程
  • int128 输入输出流控制
  • cout 输出流控制
  • 约瑟夫问题
  • 日期换算(基姆拉尔森公式)
  • 博弈1
  • postgresql查询数据sql无法使用到索引
  • 博弈2
  • sg
  • 后缀数组 SA
  • Day3综合案例一:个人简介
  • 自动机
  • 标注工具--抹除目标
  • Z函数(扩展 KMP)
  • 字符串哈希
  • 1024程序员节福利!参与互动,5分钟赢好礼!
  • 马拉车
  • 常见结论与例题
  • 单芯片方案分享-CH336F-USB拓展坞+百兆网卡+读卡器+100W快充芯片
  • 常用例题
  • 实验报告3
  • 2025年真空烧结炉厂家权威推荐榜:真空热处理设备、高温烧结炉、工业窑炉技术实力与市场口碑深度解析
  • 取模类
  • 2025年环评公司权威推荐排行榜,环评手续,环评报告,环评验收,专业高效服务助力企业合规发展
  • 2025年棒球帽厂家推荐排行榜,运动棒球帽,时尚棒球帽,定制棒球帽,防晒棒球帽公司精选榜单
  • 于状压的线性 RMQ 算法
  • Flink编程模型 - 详解
  • 服务器关机用halt、poweroff还是shutdown -h now?一文帮你说明