👩‍💻/C, C++, STL

제 16장 실력 다지기 연습문제 02 [최대 공약수, 최소 공배수]

글로랴 2021. 6. 30. 20:11

🔍 프로그램 사용자로부터 두 개의 정수를 입력 받아서 최대 공약수(GCM)와 최소 공배수(LCM)를 계산하여 출력하는 프로그램을 작성하자. (자연수만 입력된다고 가정)

 

#include <stdio.h>

// 공약수 중 가장 큰 수를 찾는다.
int SimpleGCM(int num1, int num2)  /* 최대 공약수 반환 */
{
	int i;
	for (i = num1; i >= 1; i--)
	{
		/* i는 num1의 약수인가? */
		if (!(num1%i))
		{
			/* i는 num2의 약수도 되는가? */
			if (!(num2%i))
				break;  // 최대공약수를 찾으면 for문 탈출
		}
	}
	return i;
}

// 공배수 중 가장 작은 수를 찾는다.
int SimpleLCM(int num1, int num2)  /* 최소 공배수 반환 */
{
	int increNum = num1;

	while (1)
	{
		if (!(increNum%num1) && !(increNum%num2))
			break;

		increNum++;
	}
	return increNum;
}
반응형