574ms,求大佬帮忙看看还能怎么快一点。
#include <bits/stdc++.h>
using namespace std;
inline int read(){
int s=0,w=1;
char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}
while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();
return s*w;
}
inline void write(int x){
if(x==0){putchar('0');return;}
int len=0,k1=x,c[10005];
if(k1<0)k1=-k1,putchar('-');
while(k1)c[len++]=k1%10+'0',k1/=10;
while(len--)putchar(c[len]);
}
int n, p;
void exgcd(int a, int b, int &x, int &y)
{
if (b==0)
{
x=1, y=0;
return ;
}
int q=a/b, r=a%b;
exgcd(b, r, y, x);
y-=q*x;
}
int main()
{
n=read(), p=read();
for (int i=1; i<=n; i++)
{
int x=0, y=0;
exgcd(i, p, x, y);
write((x%p+p)%p), putchar('\n');
}
return 0;
}