반응형

C언어 공약수 (common divisor)

 

 

최대공약수 (유클리드 호제법) - 48, 72

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
/* Greatest common divisor and greatest common multiple. */
#include <stdio.h>
 
int main() {
    // Greatest common divisor of two integers x, y by Euclidean method
    int x = 48, y = 72;
    if (x < y) {
        int temp = x;
        x = y;
        y = temp;
    }
 
    while (1) {
        int m = x % y;
        if (m == 0break;
        x = y;
        y = m;
    }
    
    printf("%d\n", y);
    return 0;
}
cs

 

 

입력한 두 숫자의 최대공약수 (유클리드 호제법) - 

Greatest common divisor of two input integers by Euclidean method

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
/* Greatest common divisor and greatest common multiple. */
#include <stdio.h>
 
// Get input number
int getInputNumber() {
    int input = 0;
    printf("Input an integer: ");
    scanf("%d"&input);
    return input;
}
 
// Switch numbers if (x < y)
void switchNum(int x, int y) {
    if (x < y) {
        int temp = x;
        x = y;
        y = temp;
    }
}
 
// Get common divisor of x and y
int getCommonDivisor(int x, int y) {    
    while (1) {
        int m = x % y;
        if (m == 0break;
        x = y;
        y = m;
    }
    return y;
}
 
// Print result
void print(int input1, int input2, int cd) {
    printf("Greatest common divisor of two integers ");
    printf("%d, %d by Euclidean method: %d\n", input1, input2, cd);
}
 
// Run methods
void execute() {
    // Get input numbers
    int input1 = getInputNumber();
    int input2 = getInputNumber();
 
    // Swich number
    switchNum(input1, input2);
 
    // Get common divisor of two input numbers
    int cd = getCommonDivisor(input1, input2);
 
    // Print result
    print(input1, input2, cd);
}
 
int main() {    
    execute();
    return 0;
}
cs

 

반응형