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

题解:AcWing 876 快速幂求逆元

【题目来源】

AcWing:876. 快速幂求逆元 - AcWing题库

【题目描述】

给定 \(n\)\(a_i,p_i\),其中 \(p_i\) 是质数,求 \(a_i\)\(p_i\) 的乘法逆元,若逆元不存在则输出 impossible

注意:请返回在 \(0\sim p-1\) 之间的逆元。

【输入】

第一行包含整数 \(n\)

接下来 \(n\) 行,每行包含一个数组 \(a_i,p_i\),数据保证 \(p_i\) 是质数。

【输出】

输出共 \(n\) 行,每组数据输出一个结果,每个结果占一行。

\(a_i\)\(p_i\) 的乘法逆元存在,则输出一个整数,表示逆元,否则输出 impossible

【输入样例】

3
4 3
8 5
6 3

【输出样例】

1
2
impossible

【算法标签】

《Acwing 876 快速幂求逆元》 #数学知识# #逆元# #快速幂# #费马小定理#

【代码详解】

#include <bits/stdc++.h>
using namespace std;typedef long long LL;  // 定义长整型别名,防止乘法溢出/*** 快速幂算法:计算 a^k mod p* @param a 底数* @param k 指数* @param p 模数* @return a^k mod p 的结果*/
int qmi(int a, int k, int p)
{int res = 1;        // 初始化结果为1(乘法单位元)// 使用二进制分解指数kwhile (k){// 如果当前二进制位为1,将a的当前幂次乘入结果if (k & 1){res = (LL)res * a % p;  // 使用长整型防止乘法溢出}// 将a平方,准备处理下一位a = (LL)a * a % p;// 右移一位,处理下一个二进制位k >>= 1;}return res;
}int main()
{int n;  // 测试用例数量scanf("%d", &n);// 处理每个测试用例while (n--){int a, p;  // 输入参数:a为底数,p为模数scanf("%d%d", &a, &p);// 使用费马小定理计算a在模p下的乘法逆元// 逆元 = a^(p-2) mod pint res = qmi(a, p - 2, p);// 判断逆元是否存在:当且仅当a与p互质(即a不是p的倍数)if (a % p){// 逆元存在,输出结果printf("%d\n", res);}else{// 逆元不存在(a是p的倍数)puts("impossible");}}return 0;
}

【运行结果】

3
4 3
1
8 5
2
6 3
impossible
http://www.jsqmd.com/news/409264/

相关文章:

  • Kotlin程序员面试算法宝典【1.6】
  • 题解:AcWing 875 快速幂
  • 2026宜宾搬家优质品牌推荐:日式搬家、特惠搬家、短途搬运、空调移机、设备搬运、跨市搬家、运输公司、钢琴搬运选择指南 - 优质品牌商家
  • ACE Studio 联合 StepFun 开源了音乐生成基础模型 ACE-Step 1.5
  • 智能论文引用工具推荐:六大高效标注方案详解
  • 【完全免费】视频提取音频工具,视频转mp3格式,业界良心!视频一键提取mp3音频格式,操作简单不复杂!
  • RL的几种层次
  • 建筑浮雕优质厂家推荐:外墙eps线条/泡沫浮雕/泡沫浮雕构件/藏式线条/门窗装饰线条/eps欧式线条/选择指南 - 优质品牌商家
  • 信息泄露
  • 大数据与Power BI:开启数据分析新征程
  • 2026年2月建筑城规考研调剂培训班推荐,设计实力与调剂政策深度解读 - 品牌鉴赏师
  • 【课程设计/毕业设计】基于springboot+vue的工厂仓库管理系统的设计与实现基于Springboot的工厂仓库系统设计与实现【附源码、数据库、万字文档】
  • P1993 小 K 的农场
  • 2026广东最新沉香手串生产厂家top5推荐!广州等地优质沉香手串公司权威榜单发布,品质纯正选品安心 - 十大品牌榜
  • Java毕设项目:基于springboot的非遗文化传承与推广平台(源码+文档,讲解、调试运行,定制等)
  • 16PSK调制在Matlab上的蒙特卡罗仿真
  • 经典常谈
  • EPS线条优质厂家推荐 全流程一站式服务更靠谱 - 优质品牌商家
  • 计算机Java毕设实战-基于SpringBoot + Vue的物流管理系统设计与实现基于Spring Boot的YH物流管理系统设计与实现【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • Gstreamer插入第三方plugins流程:rgaconvert
  • 计算机Java毕设实战-基于springboot的非遗文化传承与推广平台基于web的非遗文化推广综合平台设计【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • 计算机Java毕设实战-基于Springboot的工厂仓库系统设计与实现基于Springboot的工厂仓库出入库管理系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • 一周面了7大模型算法岗,无一例外全过了,非常详细收藏我这一篇就够了
  • LeetCode 160. 相交链表 | 三种解法吃透核心逻辑(哈希表 + 双指针 + 长度对齐)
  • 【课程设计/毕业设计】基于springboot的数据可视化非遗文化传承与推广平台【附源码、数据库、万字文档】
  • 【课程设计/毕业设计】基于Springboot的物流物流中心信息化管理系统基于Spring Boot的YH物流管理系统设计与实现【附源码、数据库、万字文档】
  • 物联网(IOT)简介 - 努力-
  • 数字员工与AI销冠系统是什么?它们为企业数字化转型提供了哪些支持?
  • Python核心语法-Pandas读写csv和tsv文件 - 努力-
  • DP优化学习笔记 - Sail-With