👩💻/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;
}
반응형