hyunjin

최대공약수(GCD), 최소공배수(LCM) 본문

알고리즘 연습

최대공약수(GCD), 최소공배수(LCM)

_h.j 2024. 4. 25. 15:09
728x90

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

  • 두 수 a, b
  • r : a % b = a mod b
  • gcd(a,b) = gcd(b, a % b) = gcd(b, r)
int gcd(int a, int b) {
	return b ? gcd(b, a % b) : a;
}

int gcd(int a, int b) {
	int r;
	while (b) {
		r = a % b;
		a = b;
		b = r;
	}
	return a;
}

 

 

 

최소공배수 공식 (최대공약수 활용)

  • 최소공배수 * 최대 공약수 = a * b
  • 최소공배수 = a*b / gcd(a,b)
int gcd(int a, int b) {
	return b ? gcd(b, a % b) : a;
}

int gcd(int a, int b) {
	int r;
	while (b) {
		r = a % b;
		a = b;
		b = r;
	}
	return a;
}
int lcm(int a, int b) {
	return a * b / gcd(a, b);
}

 

 

 

관련 문제 백준 장미 BOJ 3343

728x90