乘法逆元的概念
若有a*x≡1(mod p),那么可以说a与b在模p意义下互为乘法逆元
一个数有逆元的充分必要条件:gcd(a,p)=1;
乘法逆元的性质:在模p的意义下,乘以一个数相当于除于他的逆元。
比较高效 的算法:线性递推
核心推导:inv[i]=-(p/i)*inv[p%i];
使用时用p把负号换掉就行;
#include<iostream>
#include<cstring>
#include<stdio.h>
using namespace std;
typedef long long ll;
const int N=3e6+10;
ll inv[N],n;
int main()
{
int p;
cin>>n>>p;
inv[1]=1;
for(int i=2;i<=n;i++)
{
inv[i]=(p-p/i)*inv[p%i]%p;
}
for(int i=1;i<=n;i++)
printf("%lld\n",inv[i]);
return 0;
}