나머지연산

(a+b) % c = ((a%c) + (b%c)) % c

(a*b) % c = ((a*c) + (b*c)) % c

 

최대공약수(유클리드 호제법)

GCD(a, b) = GCD(b, a%b) -> a%b가 0일 때 그때의 b값이 최대공약수

1
2
3
4
5
6
7
8
9
10
11
12
int gcd(int a, int b)
{
    if (b == 0)
    {
        return a;
    }
 
    else
    {
        return gcd(b, a%b);
    }
}
cs

 

 

* GCD(a, b, c) = GCD(GCD(a, b), c)       // 더 많은 N개의 최대공약수를 구하는 것도 같은 방식

 

최대공배수

LCM(a, b) = (a*b) / (GCD(a, b))

+ Recent posts