c++ 辗转相除(动图)

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

int main(){ 
    int m,n;
    cin>>m>>n;
    int r=m;
    while(r!=0){
        r=m%n;
        m=n;
        n=r;
    }
    cout<<m;
    return 0;
}
 

 


    用较大的数除以较小的数,再用出现的余数除以除数(变成被除数),
    再用余数(第二余数)除以第一余数,如此反复,知道最后余数是0
    为止。如果是求两个数的最大公约数,那么最后的除数就是这两个数
    的最大公约数

 

 

 

posted @ 2021-10-23 08:11  Altwilio  阅读(113)  评论(0编辑  收藏  举报