[洛谷 3811] 【模板】乘法逆元 {数论}
程序员文章站
2022-05-09 13:01:32
...
题目
https://www.luogu.org/problemnew/show/P3811
解题思路
本题需要用的算法
证明与推理如下:
代码(64)
#include<cstdio>
#include<iostream>
using namespace std;
long long a,mod,n;
void write(long long x){if (x>9) write(x/10); putchar(x%10+'0');}
inline long long ksm(long long x,long long y)
{
long long ans=1;
for (;y;(x*=x)%=mod,y>>=1) if (y&1) (ans*=x)%=mod;
return ans;
}
int main()
{
scanf("%lld%lld",&n,&mod);
for (register int i=1;i<=n;i++)
write(ksm(i,mod-2)),putchar(10);
}
代码(AC)
#include<cstdio>
#include<iostream>
using namespace std;
long long a,mod,n,f[3000110];
void write(long long x){if (x>9) write(x/10); putchar(x%10+'0');}
int main()
{
scanf("%lld%lld",&n,&mod); f[1]=1; write(1); putchar(10);
for (register int i=2;i<=n;i++)
write((f[i]=(mod-mod/i)*f[mod%i]%mod)),putchar(10);
}
上一篇: 对于一些小的数学的方法的一些记录
下一篇: 洛谷P4549 裴蜀定理