P3811 【模板】乘法逆元 逆元模板
阿新 • • 發佈:2018-12-15
題目背景
這是一道模板題
題目描述
給定n,p求1~n中所有整數在模p意義下的乘法逆元。
輸入輸出格式
輸入格式:
一行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 1 \leq n \leq 3 \times 10 ^ 6, n < p < 20000528 1≤n≤3×106,n<p<20000528
輸入保證 p , p 為質數。
求1-nmodp的逆元的模板
程式碼如下:
#include <cstdio> #include <cstring> #include <algorithm> #include <iostream> using namespace std; const int maxn=3*10e6+5; typedef long long ll; ll n,p; ll inv[maxn]; int main() { scanf("%lld%lld",&n,&p); inv[1]=1; printf("%lld\n",inv[1]); for (int i=2;i<=n;i++) { inv[i] = inv[p % i] * (p - p / i) % p; printf("%lld\n",inv[i]); } return 0; }