소프트웨어/C++
[2003년 기말 5번] 최소공배수 / 최대공약수 - 나머지 / 반복문
카켈
2007. 2. 24. 05:17
목적
- 최소공배수와 최대공약수를 구하기 위한 조건과 반복문 나눗셈 사용을 익힌다.
문제
풀이
#include <iostream>
using namespace std;
int main(void)
{
int iA, iB, iLCM, iGCD, iStart, iEnd ; // iLCM : 최소공배수 iGCD : 최대공약수
iA = iB = iLCM = iGCD = iStart = iEnd = 0;
cout << "두 정수값을 입력하세요 : ";
cin >> iA >> iB;
iStart = iA <= iB ? iA : iB;
iEnd = iA <= iB ? iB : iA;
iA = iStart;
iB = iEnd;
// LCM, GCD 계산
for(iStart = 1; iStart <= iEnd; iStart++)
if(iA % iStart == 0 && iB % iStart == 0)
iGCD = iGCD < iStart ? iStart : iGCD;
for(iStart = iB; iStart <= iA * iB; iStart++)
if(iStart % iA == 0 && iStart % iB == 0)
{
iLCM = iStart;
break;
}
cout << iA << " 과 " << iB << " 의 최대공약수 : " << iGCD << endl;
cout << iA << " 과 " << iB << " 의 최소공배수 : " << iLCM << endl;
return 0;
}
- 최대공약수 : 1에서 큰수까지 1씩 증가하며 가는데 작은수 와 큰수 모두 나머지가 0인 수
- 최소공배수 : 큰수에서 두수의 곱까지 1씩 증가하는데 그수와 두수 모두의 나머지가 0인 수
참고
- 유사 문제