快速GCD
时间复杂度:O(log n)
头文件:无
int gcd(int a,int b){
int i=__builtin_ctz(a),j=__builtin_ctz(b);
int k=min(i,j),d;
b>>=j;
while(a){
a>>=i;
d=b-a;
i=__builtin_ctz(d);
if(a<b) b=a;
if(d<0) a=-d;
else a=d;
}
return b<<k;
}

浙公网安备 33010602011771号