zoukankan      html  css  js  c++  java
  • 最大公约数最小公倍数

    #include <iostream>
    using namespace std;
    int a=100,b=20;
    int gcd(int a,int b){
        return b==0?a:gcd(b,a%b);
        //注意最好先除再乘,否则可能溢出.因为a肯定可以被gcd整除
    }
    int lcm(int a,int b){
        return a/gcd(a,b)*b;
    }
    //gcd应用:
    //判断 (x1*x2*...*xk)/p是不是整数
    //用gcd进行约分,看p最后是不是1
    int x[5]={1,2,3,4,5},p=10;
    bool judge(){
        for(int i=0;i<5;i++)
            p=p/gcd(p,x[i]);
        return p==1;
    }
    
    //扩展的最大公约数算法:
    //求一个解 y,x 使 ax+by=gcd(a,b)
    int x1,y1;
    void extended_gcd(int a,int b,int& x,int& y){
        if(b==0){
            x=1;y=0;//一组解就行
        }else{
            extended_gcd(b,a%b,y,x);//注意顺序变了
            y=y-x*(a/b);
        }
    }
    int main(){
        cout<<gcd(a,b)<<" "<<lcm(a,b)<<endl;
        cout<<judge()<<endl;
        extended_gcd(6,15,x1,y1);
        cout<<x1<<" "<<y1<<endl;
        return 0;
    }
  • 相关阅读:
    EasyUI
    EasyUI
    EasyUI
    django MTV架构下的网站开发步骤
    Centos7下安装python3
    python 线程间事件通知
    hadoop MapReduce
    hadoop文件配置
    DataFrame 数据去重
    用selenium获取cookies
  • 原文地址:https://www.cnblogs.com/MorrowWind/p/13056591.html
Copyright © 2011-2022 走看看