性质:
a = ka * i + a1
b = kb * i + b1
(a + b) % i = ((ka + kb) * i + (a1 + b1)) % i
对 a 和 b 的和进行整除,和分别对它们进行整除取余数 是等价的
涉及到取余数的时候 两个数相加取余数,和两个数分别取余数相加然后再取余数,效果是一样的
a = ka * i
b = kb * i
(b - a) = (kb - ka) * i
[a, b] ---> [b-a, a] ---> [b-a-a-a, a] ---> [b%a, a]
int gcd(int a, int b)
{
if(a==0) return b;
return gcd(b%a, a);
}