STEP 5.3 (引き算の例)

<問題> 練習問題でとりあげたフローチャートを、プログラムにしよう

<実行例> 

a,bを入力してください
a = 876
b = 204

a=876, b=204の最大公約数を求める
l =  876, s =  204
l =  672, s =  204
l =  468, s =  204
l =  264, s =  204
l =   60, s =  204
l =   60, s =  144
l =   60, s =   84
l =   60, s =   24
l =   36, s =   24
l =   12, s =   24
l =   12, s =   12
a=876, b=204の最大公約数は、 12


解答例

#include <stdio.h>

int main (void) {
    int a, b;
    int s, l;

    printf("a,bを入力してください \n");
    printf("a = ");
    scanf("%d", &a);
    printf("b = ");
    scanf("%d", &b);

    l = a;
    s = b;

    printf("\na=%d, b=%dの最大公約数を求める\n", a, b);


    printf("l = %4d, s = %4d\n", l, s); /* 解析用 */
    while(1) {
        if (l==s) break;
        if (l > s)
            l = l - s;
        else
            s = s - l;
        printf("l = %4d, s = %4d\n", l, s); /* 解析用 */
    }

    printf("a=%d, b=%dの最大公約数は、%3d\n", a, b,l);

    return 0;

}