zoukankan      html  css  js  c++  java
  • 数论 欧几里德算法 以及 欧几里得拓展

    一.欧几里得算法

     作用: 求最大公约数,求最小公倍数,化简分子分母

    二.欧几里得拓展

    一. 欧几里得算法:

      gcd(a,b) = gcd(b,a mod b) (b < a)

    25%15 = 10
    x y = x%y
    15%10 = 5
    y x%y
    10 % 5 = 0
    ANS : 5
    int gcd(int x,int y){
        if(y == 0)
            return x;
        if(y > 0)
            return f(y,x%y);//即使 y > x, 调用 gcd ( y , x%y) 就等于互换 y与x。
    }
    int gcd(int x,int y){
        return y ? gcd(y,x%y) : x;
    }

    作用

      (1) 用多个数的最大公约数求最小公倍数

        //A*B = A与B的最大公约数 * A与B的最小公倍数
        //gcd(int x,int y) 返回 x 和 y 的最大公约数 
        long long maxLcm = 1;//最下公倍数 
        long long tmp;
        long long ans;
        for(int i=0;i<N;++i){
            tmp = max1/gcd(max1,t2[i])*t2[i];
            maxLcm = tmp;
        }
          cout << maxLcm << endl;

      (2) 求出最大公约数 化简分数。

    例题链接

    二. 拓展欧几里得算法:

      

  • 相关阅读:
    odoo权限
    odoo开发bug记录
    odoo视图
    odoo13线上发布
    odoo开发环境搭建
    request
    urllib
    b站排行榜-爬虫
    DockerFile
    Docker基本操作
  • 原文地址:https://www.cnblogs.com/--zz/p/10480839.html
Copyright © 2011-2022 走看看