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
03
int
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
}