您的位置:首页 > 其它

[洛谷3811]【模板】乘法逆元

2017-08-14 15:01 211 查看

思路:

线性推逆元模板。
核心代码:inv[i]=(long long)(p-p/i)*inv[p%i]%p;
注意中间结果要开long long,否则会上溢,只有32分。

#include<cstdio>
#include<cctype>
inline int getint() {
char ch;
while(!isdigit(ch=getchar()));
int x=ch^'0';
while(isdigit(ch=getchar())) x=(((x<<2)+x)<<1)+(ch^'0');
return x;
}
int main() {
int n=getint(),p=getint();
int inv[n+1];
inv[1]=1;
printf("%d\n",inv[1]);
for(int i=2;i<=n;i++) {
inv[i]=(long long)(p-p/i)*inv[p%i]%p;
printf("%d\n",inv[i]);
}
return 0;
}

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: