完全不用那么多优化23333
```cpp
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int n,mod;
inline int read()
{
char c=getchar();int flag=1,x=0;
while(c<'0'||c>'9') {if(c=='-') flag=-1;c=getchar();}
while(c>='0'&&c<='9') x=x*10+c-48,c=getchar(); return x*flag;
}
int x,y;
int gcd(int a,int b)
{
return b==0?a:gcd(b,a%b);
}
int exgcd(int a,int b,int &x,int &y)
{
if(b==0)
{
x=1,y=0;
return a;
}
int r=exgcd(b,a%b,x,y);
int tmp=x;x=y;y=tmp-(a/b)*y;
return r;
}
int main()
{
n=read(),mod=read();
for(int i=1;i<=n;i++)
{
int g=exgcd(i,mod,x,y);
while(x<0) x+=mod;
printf("%d\n",x);
}
return 0;
}
@[DefFrancis](/space/show?uid=46750)
```
by attack @ 2017-10-25 19:21:05
加个register就可以A了 连读入优化都没有
800ms
```cpp
#include <stdio.h>
#include <iostream>
using namespace std;
void exgcd(int a,int b,int &x,int &y){
if(!b){
x = 1,y = 0;
return;
}
exgcd(b,a%b,y,x);
y-=x*(a/b);
}
int main(){
int n,p;
scanf("%d%d",&n,&p);
int x,y;
for(register int i = 1;i<=n;i++){
exgcd(i,p,x,y);
while(x<0) x+=p;
printf("%d\n",x);
}
return 0;
}
```
by TakaML @ 2017-11-09 08:54:48
读入优化是搞笑的吗233,输出优化倒是有点用
by W584102684 @ 2017-11-09 09:10:35