gcd的一点注意

lcm = a * b / gcd

(注意,这样写法有可能会错,因为a * b可能因为太大  超出int  或者 超出 longlong)

所以推荐写成 : lcm = a / gcd * b

unsigned long long gcd(ull m,ull n)
{
    while(m>0)
    {
        ull c = n % m;
        n = m;
        m = c;
    }
    return n;
}

猜你喜欢

转载自blog.csdn.net/SuperBvs/article/details/81157701