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

코드업 1564번 함수로 최대 공약수 리턴하기

 

1. 문제 설명

 

int 형 자연수 두 개를 입력받아
최대공약수(GCD, Greatest Common Divisor)를 출력하시오.

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

참고
최대공약수는 두 수의 공통적인 약수 중에서 가장 큰 약수를 의미한다.
예를 들어 96과 160의 최대 공약수는 32이다.


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

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

 

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

 

2. 입력

 

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

 

3. 출력

 

두 수의 최대공약수를 출력한다.

 

4. 입력 예시

 

160 96

 

5. 출력 예시

 

32

 

6. 문제 풀이

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
 
int a, b;
 
int gcd(int n, int m) {
    int i,gcd_v;
    if (n >= m) {
        i = m;
    }
    else { i = n; }
    for (int j = 1; j <= i; j++) {
        if (n % j == 0 && m % j == 0) {
            gcd_v = j;
        }
    }
    return gcd_v;
}
int main()
{
  scanf("%d%d"&a, &b);
  printf("%d\n", gcd(a, b));
}
 

댓글()