一。整除 取余
相信都不难理解。
a/b 就是最大的X使X*b<=a
取余就是上面的 a-X*b
二。同余
(我用= 表示 同余号 (就是仨横杠))
a=b(mod p)
表示a,b在mod p 下同余
意思就是 a%p==b%p
三。gcd lcm
gcd(a,b) lcm(a,b)
分别表示 a,b 的最大公约数 最小公倍数
可以证明 lcm(a,b) = a*b / gcd(a,b)
所以只需要求出gcd
一般来说
使用欧几里得定理
辗转相除求gcd
代码:
int gcd(int a,int b)
{
if(b==0) return a;
return gcd(b,a%b);
}
int lcm(int a,int b)
{
return a*b/lcm(a,b);
}
噫。