[C언어 코드업 문제풀이] CodeUp 1565 : [기초-함수작성] 함수로 최소공배수 리턴하기

코드업 1565번 함수로 최소공배수 리턴하기 문제 풀이 해답입니다.

 

1. 문제 설명

 

int 형 자연수 두 개를 입력받아
최소공배수(LCM, Least Common Multiple)를 출력하시오.

단, 함수형 문제이므로 함수 lcm()만 작성하여 제출하시오.

참고
최소공배수는 두 수의 공통 배수들 중에서 가장 작은 공통 배수를 의미한다.
예를 들어 72와 192의 최소 공배수는 576이다.


[함수형 문제란??]
함수형 문제는 기본적인 main() 등은 미리 작성되어 있습니다.
미리 작성되어 있는 프로그램은 다음과 같습니다.

미리 작성된 프로그램을 복사해 붙여 넣은 후 함수 부분을 설계하여 작성해 넣고,
테스트 한 후, 함수 부분만 제출하세요.

 

1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
 
int gcd(int p, int q){ if(p==0return q; return gcd(q%p, p);}
// 이 부분에 들어가야 될 코드를 작성하여 제출
int main()
{
  int a, b;
  scanf("%d%d"&a, &b);
  printf("%lld\n", lcm(a, b));
}

 

 

2. 입력

 

두 개의 자연수(a, b)가 공백을 두고 입력된다.
(1 <= a,b <= 2147483647)

 

 

3. 출력

 

두 수의 최소공배수를 출력한다.

 

4. 입력 예시

 

192 72

 

5. 출력 예시

 

576

 

6. 문제 풀이

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
 
int gcd(int p, int q){ if(p==0return q; return gcd(q%p, p);}
 
long long int lcm(int a, int b) {
    long long int minN = a;
    long long int maxN = b;
    if (minN > maxN) {
        minN = b;
        maxN = a;
    }
    return minN / gcd(maxN, minN) * maxN;
}
int main()
{
  int a, b;
  scanf("%d%d"&a, &b);
  printf("%lld\n", lcm(a, b));
}

댓글()