美文网首页
辗转相除法

辗转相除法

作者: 与时间共舞 | 来源:发表于2022-06-29 11:08 被阅读0次

    辗转相除法(欧几里得算法)
    求两个数的最大公约数和最小公倍数?
    1、最大公约数
    思路:大数除以小数,如果能够整数,
    则小数是最大公约数,如果不能
    整除,则用除数作为被除数继续
    除以余数,直到能够整除,那么
    除数就是最大公约数
    2、最小公倍数
    思路:根据公式求解
    两个数的乘积
    =最大公约数*最小公倍数

    #include<iostream>
    using namespace std;
    int gcd(int x, int y){  //最大公约数 
        int t = x%y;  //求余数 
        while(t!=0){  //判断余数为0 
            x=y;        
            y=t;
            t=x%y;
        }
        return y;
    } 
    
    int lcm(int x, int y){ //最小公倍数 
        int t = gcd(x,y);
        return (x*y/t); 
        //两个数的乘积=最大公约数*最小公倍数 
    } 
    
    int main(){
        
        int a,b;
        cin>>a>>b;
        cout<<"最大公约数:"<<gcd(a,b)<<endl;
        cout<<"最小公倍数:"<<lcm(a,b)<<endl; 
        
        return 0;
    }
    

    相关文章

      网友评论

          本文标题:辗转相除法

          本文链接:https://www.haomeiwen.com/subject/aodtbrtx.html