清北灵堂的奇怪数论
清北灵堂的《简单数论》
Exgcd
大数翻倍法
int exgcd(int a1,int p1,int a2,int p2) //x%p1=a1 //x%p2=a2 { if(p1<p2) swap(a1,a2),swap(p1,p2); int x=a1; while(x%p2!=a2) x+=p1; //x对p1取模,所以加一点p1也行,可以一只加p1直到它满足p2为止 return x%lcm(p1,p2); }
int exgcd(int a1,int p1,int a2,int p2) //x%p1=a1 //x%p2=a2 { if(p1<p2) swap(a1,a2),swap(p1,p2); int x=a1; while(x%p2!=a2) x+=p1; //x对p1取模,所以加一点p1也行,可以一只加p1直到它满足p2为止 return x%lcm(p1,p2); }