Algorithms

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

Ohjeonghak 2014. 9. 3. 21:43
반응형
//최대 공약수는 두 수중 큰수를 작은수로 나눈 나머지가 0이 될때까지 계속 반복하여 나오는 큰수이다.
//최소 공배수는 두 수의 곱에 최대 공약수를 나눈 값이다.

#include<stdio.h>

int gcd(int a, int b);	//최대 공약수
int lcm(int a, int b, int g);	//최소 공배수

int main()
{
	int num1 = 0, num2 = 0;

	scanf("%d %d", &num1, &num2);

	printf("최대공약수 : %d, 최소공배수 : %d\n", gcd(num1, num2), lcm(num1, num2, gcd(num1, num2)));

	return 0;
}

int gcd(int a, int b)
{
	int temp = 0;

	while (a)
	{
		if (a < b)
		{
			temp = a;
			a = b;
			b = temp;
		}

		a = a%b;
	}

	return b;
}

int lcm(int a, int b, int g)
{
	return a*b ⁄ g;
}

반응형

'Algorithms' 카테고리의 다른 글

하노이탑  (0) 2014.09.04
인수분해(insubunE)  (0) 2014.09.04
[정올]동전 자판기  (0) 2014.09.01
[정올]저글링 방사능 오염  (0) 2014.09.01
[정올] - [1067]종이자르기  (0) 2013.08.15