求最大公因数
#include<bits/stdc++.h> using namespace std; int gcd(int a,int b){ if(b==0) return a; return (b,a%b); } void exgcd(int a,int b,int &d,int &x,int &y){ //求解ax+by=gcd(a,b)的一组解,d=gcd(a,b) //假设x',y'满足 bx'+(a%b)y'=gcd(b,a%b)=gcd(a,b) //结果是x=y',y=x'-(a/b)y' int t; if(b==0){ d=a; x=1; y=0; }else{ exgcd(b,a%b,d,x,y); t=x; x=y; y=t-(a/b)*y; /* exgcd(b,a%b,d,y,x); y-=x*(a/b); */ } } /* ax+by=c 在gcd(a,b)|c有解 令k=c/gcd(a,b),能得到x=x'k,y=y'k是方程的一组特解 通解就是x+t*b',y-a'*t (a'x+b'y=c' == a'x~c'(mod b') 其中x',y'是 a' x'+b' y'=1的整数解(用exgcd求出) a'=a/g,b'=b/g */ int main(){ return 0; }