C++中的輾轉相除法

俺俺發表於2019-08-03

#include<iostream>
#include<cstdio>
#include<iomanip>
#include<cstring>
using namespace std;

int main(){
    //輾轉相除法
    /*
    用較大的數除以較小的數,再用出現的餘數除以除數(變成被除數),
    再用餘數(第二餘數)除以第一餘數,如此反覆,知道最後餘數是0
    為止。如果是求兩個數的最大公約數,那麼最後的除數就是這兩個數
    的最大公約數 
    */ 
    int m,n;
    cin>>m>>n;
    int r=m;
    while(r!=0){
        r=m%n;
        m=n;
        n=r;
    }
    cout<<m;
    return 0;
}
 

相關文章