题目背景
这是一道模板题
题目描述
给定 n,p 求 1∼n 中所有整数在模 p 意义下的乘法逆元。
这里 a 模 p 的乘法逆元定义为 ax≡1(modp) 的解。
输入格式
一行两个正整数 n,p。
输出格式
输出 n 行,第 i 行表示 i 在模 p 下的乘法逆元。
输入输出样例
输入 #1复制
10 13
输出 #1复制
1
7
9
10
8
11
2
5
3
4
说明/提示
1≤n≤3×106,n<p<20000528。
输入保证 p 为质数。
代码实现:
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll n, mod, inv[3000005];
signed main() {
cin >> n >> mod;
inv[1] = 1;
cout << inv[1] << "\n";
for (ll i = 2; i <= n; ++i) {
inv[i] = (-mod / i * inv[mod % i] % mod + mod) % mod;
cout << inv[i] << "\n";
}
return 0;
}