快速幂求逆元 费马小定理
董晓算法:G13 同余式 乘法逆元 费马小定理(通俗易懂)
[AcWing876] 快速幂求逆元
题目描述
给定 impossible
。
注意:请返回在
乘法逆元的定义
若整数
互质,并且对于任意的整数 ,如果满足 ,则存在一个整数 ,使得 ,则称 为 的模 乘法逆元,记为 。
存在乘法逆元的充要条件是 与模数 互质。当模数 为质数时, 即为 的乘法逆元。
输入格式
第一行包含整数
接下来
输出格式
输出共
若 impossible
。
数据范围
输入样例:
3 4 3 8 5 6 3
输出样例:
1 2 impossible
算法
费马小定理
设
则
C++ 代码
#include <bits/stdc++.h> using namespace std; using ll = long long; ll fastPow(int a, int b, int p) { auto res = 1ll; while (b){ if (b & 1) res = res * 1ll * a % p; a = a * 1ll * a % p; b >>= 1; } return res; } int main() { int n; cin >> n; while (n--){ int a, p; cin >> a >> p; if (a % p) cout << fastPow(a, p - 2, p) << endl; else cout << "impossible" << endl; } return 0; }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~