#31933: C的解法與思路


10730094@ms2.hssh.tp.edu.tw (給開司一份薯片)

學校 : 不指定學校
編號 : 172670
來源 : [180.177.114.33]
最後登入時間 :
2023-01-01 23:20:42
a024. 最大公因數(GCD) | From: [180.177.114.33] | 發表日期 : 2022-08-29 15:55

#include<stdio.h>
int main() {
    int num1, num2, Max, Min;
    while (scanf("%d%d",&num1,&num2)!=EOF) {
        if (num1 >= num2) {  //比較大小,決定誰是Max,誰是Min
            Max = num1;
            Min = num2;
        }
        else {
            Max = num2;
            Min = num1;
        }
        while (Max > 0) { //當被除數大於0時(此時才能進行輾轉相除法)
            int temp = Max % Min; //temp決定有沒有辦法繼續進行輾轉相除法
            if (temp != 0) { //當有存在餘數時,將Max換Min,同時將餘數temp的值給Min
                Max = Min;
                Min = temp;
            }
            else { //如果Max% Min餘數為0,也就是彼此為因倍數關係,則可斷定此時的Min就是最大公因數(BY 輾轉相除法)
                int gcd = Min;
                printf("%d",gcd);
                break;
            }
        }
    }
    return 0;
}

 
ZeroJudge Forum