C 언어의 기본3

3. 입력받은 정수 두 개의 최소 공약수를 구하라.

#include <stdio.h>

int main(void)
{
	int num1, num2;
	int tmp = 1;

	printf("숫자 입력(첫 숫자가 무조건 더 큰 수) : ");
	scanf_s("%d %d", &num1, &num2);

	while (tmp)
	{
		tmp = num1 % num2;
		num1 = num2;
		num2 = tmp;
	}

	printf("최소공배수 : %d \n", num1);
	
	return 0;
}

'유클리드 호제법'을 이용했다.
둘 중 큰 수를 작은 수로 나누고 나머지 값을 작은 수와 계속해서 나눈다.
나머지 값이 0이 되었을 때, 나눴던 작은 수가 최대 공약수가 된다.

좋은 웹페이지 즐겨찾기