数论学习笔记1——二进制算法求GCD 又是一篇水解。 首先显然大家都知道如何用辗转相除法求最大公约数,其原理就是gcd(x,y)=gcd(x,y-x) 既然大家都知道我在这里就不证明了 贴下一行代码: inline ll gcd(ll x,ll y){ return y?gcd(y,x%y):x; } 但强大的你怎能止步于此,定要优化一下,其实原理也很简单 就是不断地除2 我们考虑当x=y时,gcd(x,y)=x,否则 (1)x,y均为偶数,则gcd(x