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

题解:洛谷 P5091 【模板】扩展欧拉定理

【题目来源】

洛谷:P5091 【模板】扩展欧拉定理 - 洛谷

【题目描述】

给你三个正整数,\(a,m,b\),你需要求:\(a^b \bmod m\)

【输入】

一行三个整数,\(a,m,b\)

【输出】

一个整数表示答案

【输入样例】

2 7 4

【输出样例】

2

【解题思路】

image

【算法标签】

《洛谷 P5091 扩展欧拉定理》 #数学# #模板题#

【代码详解】

#include <bits/stdc++.h>
using namespace std;
#define int long long
int a, m, cnt, r, ans;
string b;// 计算欧拉函数φ(m)
int phi(int x)
{int res = x;for (int i = 2; i * i <= x; i++)if (x % i == 0){res = res * (i - 1) / i;  // φ(n) = n * ∏(1 - 1/p)while (x % i == 0)x /= i;  // 去除所有i因子}if (x != 1)  // 处理剩余的质因子res = res * (x - 1) / x;return res;
}// 大数取模
int mod(string s, int div)
{int rem = 0;for (int i = 0; i < s.size(); i++)rem = (rem * 10 + (s[i] - '0')) % div;return rem;
}// 比较两个大数(字符串形式)
bool cmpBIG(string x, string y)
{ if (x.size() > y.size())return true;  // x >= yif (x.size() < y.size())return false;  // x < yreturn x >= y;  // 长度相等时比较字典序
}// 快速幂
int qmi(int a, int b, int p)
{int mul = 1;a %= p;while (b){if (b & 1) mul = mul * a % p;a = a * a % p;b >>= 1;}return mul;
}signed main()
{cin >> a >> m >> b;  // 输入a, m, b(b是大数,用字符串表示)a %= m;  // 先对a取模cnt = phi(m);  // 计算欧拉函数φ(m)r = mod(b, cnt);  // 计算b mod φ(m)// 如果b >= φ(m),则需要加上φ(m)(扩展欧拉定理)if (cmpBIG(b, to_string(cnt)))r = (r + cnt) % m;  // 应该是(r + cnt) % cnt,但这里写错了ans = qmi(a, r, m);  // 计算a^r mod mcout << ans << endl;return 0;
}

【运行结果】

2 7 4
2 
http://www.jsqmd.com/news/397148/

相关文章:

  • 题解:洛谷 P2568 GCD
  • 模拟退火算法
  • 题解:洛谷 P3861 拆分
  • GESP2024年3月认证C++二级( 第三部分编程题(1) 乘法问题)
  • Java synchronized关键字详解:从入门到原理
  • 题解:洛谷 P1495 【模板】中国剩余定理(CRT)/ 曹冲养猪
  • CSP-J2025游记
  • 题解:洛谷 P4942 小凯的数字
  • P3143 [USACO16OPEN] Diamond Collector S
  • 蛇和锯子的羁绊
  • 题解:洛谷 P2704 [NOI2001] 炮兵阵地
  • 北京字画回收|上门服务,当场现金结算,丰宝斋让你变现无忧 - 品牌排行榜单
  • 题解:洛谷 P1879 [USACO06NOV] Corn Fields G
  • Lambda架构在智能家居大数据处理中的实践
  • 题解:洛谷 P2831 [NOIP 2016 提高组] 愤怒的小鸟
  • 题解:洛谷 P1450 [HAOI2008] 硬币购物
  • 提示工程架构师晋升难?因为你没搞懂这套「成长地图」
  • 大数据领域数据工程的数据迁移工具
  • 探索新高度!AI应用架构师在AI模型持续优化中的突破
  • 企业级Docker镜像仓库Harbor部署实战
  • 惊叹!提示工程架构师让区块链与提示系统结合焕发新活力
  • 探索光伏发电混合储能系统模型:从理论到仿真
  • 题解:洛谷 P1040 [NOIP 2003 提高组] 加分二叉树
  • LangGraph 实战:10分钟打造带“人工审批”的智能体流水线 (Python + LangChain)
  • 惊艳全场!大数据数据采集的实战妙招
  • 题解:洛谷 P1896 [SCOI2005] 互不侵犯
  • 直通上海智推时代:官方联络通道一站式汇总 - 速递信息
  • AI写作后如何添加个人观点让论文更真实?降AI的终极心法
  • 题解:洛谷 P2014 [CTSC1997] 选课
  • 武汉疆灵科技:深耕低空经济 打造无人机,具身智能人形机器人载人无人驾驶航空器维修与维修人才技能培训全国标杆 - 速递信息