当前位置:网站首页>Mathematical knowledge: fast power inverse element - fast power
Mathematical knowledge: fast power inverse element - fast power
2022-06-23 07:45:00 【Fight! Sao Nian!】
subject :AcWing 876. Fast power inverse
Given n Group ai,pi, among pi Prime number , seek ai model pi Multiplicative inverse element of , If the inverse element does not exist, output impossible.
Be careful : Please return to 0∼p−1 The inverse element between .
Definition of multiplicative inverse
If integer b,m Coprime , And for any integer a, If meet b|a, Then there is an integer x, bring a/b≡a*x(mod m), said x by b The mold m Multiplicative inverse element , Write it down as b−1(modm).
b The necessary and sufficient condition for the existence of multiplicative inverse is b And modulus m Coprime . When modulus m Prime number ,bm−2 That is to say b Multiplicative inverse element of .
Input format
The first line contains integers n.
Next n That's ok , Each row contains an array ai,pi, Data assurance pi Prime number .
Output format
The output, n That's ok , Each group of data outputs a result , Each result takes up one line .
if ai model pi The multiplicative inverse of exists , Then an integer is output , Represents the inverse element , Otherwise output impossible.
Data range
1≤n≤105,
1≤ai,pi≤2∗109
sample input :
3
4 3
8 5
6 3
sample output :
1
2
impossible
Topic analysis :
When n Prime number , You can use the fast power to find the inverse element :
a / b ≡ a * x (mod n)
Ride on both sides b Available a ≡ a * b * x (mod n)
namely 1 ≡ b * x (mod n)
Same as b * x ≡ 1 (mod n)
From Fermat's theorem , When n Prime number
b ^ (n - 1) ≡ 1 (mod n)
Remove one b Come out and get b * b ^ (n - 2) ≡ 1 (mod n)
Therefore, when n Prime number ,b Multiplicative inverse element of x = b ^ (n - 2)
#include <iostream>
using namespace std;
const int N = 100010;
typedef long long LL;
LL qmi(int a,int k,int p)
{
LL res=1%p;
while(k)
{
if(k&1)res=(LL)res*a%p;
a=(LL)a*a%p;
k>>=1;
}
return res;
}
int main()
{
int n;
scanf("%d",&n);
while(n--)
{
int a,p;
scanf("%d%d",&a,&p);
int res=qmi(a,p-2,p);
if(a%p)cout<<res<<endl;
else cout<<"impossible"<<endl;
}
return 0;
}
边栏推荐
- JS to determine the added and decreased elements of two arrays
- How bootstrap clears floating styles
- Ntu-rgbd data set download and data format analysis
- 1278_FreeRTOS_借助prvAddCurrentTaskToDelayedList接口理解delayed task
- [pyqt5 series] modify the counter to realize control
- Live broadcast review | how can the container transformation of traditional applications be fast and stable?
- Unity to wechat applet games
- Playwirght深度入门
- 2022 final examination of software project management of School of software, Shandong University (recall version)
- Console Application
猜你喜欢

这道字符串反转的题目,你能想到更好的方法吗?

How MySQL converts a date to a number

Vs problems when connecting to SQL myconn OPen(); cannot execute

Simpledateformat thread safety issues

【Veusz】导入CSV中的二维数据
![[deep learning] [original] how to detect targets and draw map and other parameter maps without yolov5 weights or models](/img/f3/ff14cb5439a24e26f977e5f0d15785.png)
[deep learning] [original] how to detect targets and draw map and other parameter maps without yolov5 weights or models

帆软堆积图显示占比

HCIP之路第八次实验
![[veusz] import 2D data in CSV](/img/22/467139f5a83ce9e88a57ced732d4d6.png)
[veusz] import 2D data in CSV

MIT CMS.300 Session 12 – IDENTITY CONSTRUCTION 虚拟世界中身份认同的建立 part 2
随机推荐
电脑如何安装MySQL?
Principle of skip table
C WPF additional attribute implementation interface defines decorator
职场必备的30套报表模板,满足95%的报表需求,一键套用无需代码
Playwirght深度入门
[Planet selection] how to efficiently build fine-grained two-way links between roam and thebrain?
Here comes the dry goods | PAAS collection to see first ~
unity转微信小程序小游戏
Judge black production based on CDN and client slow log characteristics
干货来了|《PaaS》合辑抢先看~
链游飞船开发 农民世界链游开发 土地链游开发
1278_FreeRTOS_借助prvAddCurrentTaskToDelayedList接口理解delayed task
Live broadcast review | how can the container transformation of traditional applications be fast and stable?
NFS 特别注意权限的问题
在线文本过滤小于指定长度工具
【云计算赛项】职业技能竞赛--容器开发部分例题Pig快速开发框架
MySQL慢查询记录
启动appium
2022 final examination of software project management of School of software, Shandong University (recall version)
[* * * array * * *]