题目背景
这是一道模板题
题目描述
给定n,p求1~n中所有整数在模p意义下的乘法逆元。
输入输出格式
输入格式:
一行n,p
输出格式:
n行,第i行表示i在模p意义下的逆元。
输入输出样例
说明
1≤n≤3×10^6,n<p<20000528
输入保证 p 为质数。
分析:
昨天信息学奥赛篇终于到了,我翻开看了看,于是就自学了乘法逆元,发现是真心难。。。模板题我就不多分析了,直接上代码。(代码好短。。。)
CODE:
1 #include <cstdio> 2 #include <cstring> 3 #include <cmath> 4 #include <iostream> 5 #include <algorithm> 6 using namespace std; 7 int n,mod; 8 int inv[10000005]; 9 int main(){ 10 cin>>n>>mod; 11 inv[1]=1; 12 for (int i=2;i<=n;i++) inv[i]=(mod-mod/i)*1ll*inv[mod%i]%mod; 13 for (int i=1;i<=n;i++) printf("%d ",inv[i]); 14 return 0; 15 } 16