🔻Extracurricular Activity/ALCUK

[2022 겨울학기] 1주차 - 문자열, GCD, LCM

_니지 2022. 4. 10. 13:23

1. 정의

-문자열이란?

string이나 char[ ]

배열 초기화 함수: memset(배열이름, 초기화값, sizeof(배열이름));

 

-GCD란?

Greatest Common Divisor: 최대공약수

 

-LCM이란?

Least Common Multiple: 최소공배수

두 자연수의 공통된 배수 중 가장 작은 수  -> 최대공약수를 통해 구할 수 있음

 


 

2. 동작 원리

-GCD

방식1: 두 수 m, n를 입력받고 2부터 n까지 두 자연수를 모두 나누어보면 최대공약수를 구할 수 있음

방식2: 유클리드 호제법

            m을 n으로 나눈 나머지를 r이라고 하면, m과 n의 최대공약수는 n과 r의 최대공약수와 같은 것을 이용

 

-LCM

두 수의 곱을 두 수의 최대공약수로 나누어주면 최소공배수를 알 수 있음

 


 

3. 코드

//GCD 최대공약수

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

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) / gcd(a, b);
}

 

 

※공부 중 작성한 내용이기에 틀린 부분이 있을 수도 있습니다!

728x90
반응형