되는대로 살자

[C언어 기출문제&풀이] 최대공약수, 최소공배수 본문

2009~2014/C/C++

[C언어 기출문제&풀이] 최대공약수, 최소공배수

malu 2010. 11. 2. 16:53

프로그램 명: gcd_lcm
제한시간: 1 초
두 수의 최대 공약수와 최소 공배수를 출력하는 프로그램을 작성하시오.

입력

100 이하의 자연수를 입력으로 받는다.

출력

한 줄에 두 수를 출력한다. 첫번째 수는 최대 공약수이고 , 다음 수는 최소 공배수이다.

입출력 예

입력

4 6

출력

2 12
풀이 : 최대 공약수는 전에 만든 약수를 구하는 함수로 공통된 부분을 구했고, 공배수는 임의변수 i를
1부터증가시켜 처음 나온 값으로 정하였다. 
 
소스코드 
01#include <stdio.h>
02  
03int main()
04{
05    int a,b,i;
06    scanf("%d %d",&a,&b);
07    for(i=a;;i--)
08    {
09        if(a%i==0&&b%i==0)
10        {
11            printf("%d ",i);
12            break;
13        }
14    }
15    for(i=a;;i++)
16    {
17        if(i%a==0&&i%b==0)
18        {
19            printf("%d ",i);
20            break;
21        }
22    }
23}