본문 바로가기

C

[C언어] 최소공배수 구하기 (정보처리기사 외)

While문 쓰기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <stdio.h>
 
int main()
{
    int num1;
    int num2;
    int max_num, min_num;
    
    scanf("%d %d"&num1, &num2);
    
    max_num = (num1 > num2) ? num1 : num2; // 두 수 중에서 더 큰 수를 골라준다 
    min_num = (num1 < num2) ? num1 : num2; // 두 수 중에서 작은 수를 골라준다 
    
    int i = max_num;
    int j = max_num * min_num;
    
    while (j <= max_num * min_num)
    {
        if ((i % min_num == 0&& (i % max_num == 0))
            {
                printf("%d", i);
                return i;
            }
        else
            i++;
    }
    
    return 0;
}
cs

For 문으로 심플하게 구해 보기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <stdio.h>
 
int main()
{
    int num1;
    int num2;
    int max_num, min_num;
    
    scanf("%d %d"&num1, &num2);
    
    max_num = (num1 > num2) ? num1 : num2; // 두 수 중에서 더 큰 수를 골라준다 
    
    int i;
    
    for (i = max_num;; i++)
    {
        if ((i % num1 == 0&& (i % num2 == 0))
        {
            printf("최소공배수는 %d입니다.", i);
            return i;
        }    
        else
            i++;
    }
    return 0;
cs