最小公倍数和最大公约数求法
1.最大公约数一般欧几里得算法(辗转相除法)
辗转相除法就是拿大的不断去模小的然后当小的为0是大的那个就是最大公约数
| - | - |
|---|---|
| a=18 | b=12 |
| a=12 | b=6 |
| a=6 | b=0 |
先用a去%12的到6此a=12,b=6,再用12%6此时b=0,a=12,就的到了结果
2.最小公倍数
$$
a*b=lcm(a,b)*gcd(a,b)
$$
a*b=lcm(a,b)*gcd(a,b)
$$
那很明显
$$
lcm(a,b)=a*b/gcd(a,b)
$$
lcm(a,b)=a*b/gcd(a,b)
$$
那求法应该很简单了。
int lcm(a,b){
return a*b/__gcd(a,b)
}

浙公网安备 33010602011771号