最后一个点23次提交从700ms到512ms
欧几里得赐予我力量!!!
#include<cstdio>
template <typename L> inline void Read(L &x){
char c;
while((c=std::getchar())<'0'||c>'9');
x=c^48;
while((c=getchar())>='0'&&c<='9') x=(x<<1)+(x<<3)+(c^48);
}
template <typename L> void Write(L x){
if(x>9) Write(x/10);
std::putchar(x%10^48);
}
inline void exgcd(register int a,register int b,register int &x,register int &y){
if(!b){x=1;y=0;}
else{
exgcd(b,a%b,x,y);
register int k=x;
x=y;y=k-(a/b)*y;
}
}
int main(){
register int n,p,x,y;
Read(n);Read(p);
for(register int i=1;i<=n;++i){
exgcd(i,p,x,y);
Write((x+p)%p);
std::putchar('\n');
}
return 0;
}