美文网首页
求最大公约数----欧几里得算法

求最大公约数----欧几里得算法

作者: 鸡杂面 | 来源:发表于2019-04-09 17:23 被阅读0次

1.欧几里得算法

可求两个正整数的最大公约数。
计算公式为gcd(a, b) = gcd(b, a % b)。
证明该算法就是证明gcd(a, b) = gcd(b, a % b),

证明过程如下:

1.设有两个正整数a,b。 有a=kb+r.(a>b)。
2.设d为a和b的任意一个公约数,记为d|a,d|b(就是d可以整除a,d可以整除b)。
3.有r=a-kb.所以r也可以被d整除,d|r。
4.所以(a,b)和(b,a%b)的公约数是一样的,即gcd(a, b) = gcd(b, a % b);所以(b,a%b)的最大公约数就是(a,b)的最大公约数。

2.java实现欧几里得算法(递归)

//欧几里得算法实现
        public  static int gcd(int a,int b) {
            if(b==0)
                return a;
            int temp;
            temp = a%b;
            a =b;
            b=temp;
            return gcd(a,b);
        }
}

3.java实现求两个正整数最大公约数

import java.util.Scanner;

//greatest common divisor最大公约数,欧几里得算法实现。
public class Gcd {
        public static void main(String[] args) {
            int a=0,b=0;
            System.out.println("请输入两个正整数来求其最大公约数");
            Scanner scanner = new Scanner(System.in);
            a = scanner.nextInt();
            b = scanner.nextInt();
            if(a<=0 || b<=0) {
                System.out.println("输入错误!");
            }else {
                System.out.println("最大公约数为:"+gcd(a,b));
            }
        }
        
        //欧几里得算法实现(递归)
        public  static int gcd(int a,int b) {
            if(b==0)
                return a;
            int temp;
            temp = a%b;
            a =b;
            b=temp;
            return gcd(a,b);
        }
}

相关文章

  • 扩展欧几里得算法

    资料 欧几里得算法 扩展欧几里得算法 扩展欧几里得算法应用 欧几里得算法 欧几里得算法用于求两个数的最大公约数 证...

  • 数论——欧几里得算法

    欧几里得算法 介绍 【欧几里得算法】又名辗转相除法,是求最大公约数的算法。两个整数的最大公约数是能够同时整除它们的...

  • 欧几里得算法

    欧几里得算法又称辗转相除法,用于求两个非负整数的最大公约数。

  • 欧几里得算法

    欧几里得算法:辗转相除法,用来求两个数的最大公约数。【在数学里面最大公约数是没有负的定义的,所以负数是不谈最大公约...

  • [最大公约数] 欧几里得算法(辗转相除法)

    在数学中,欧几里得算法,又称辗转相除法,是求最大公约数(greatest common divisor)的算法。辗...

  • 辗转相除法

    辗转相除法(欧几里得算法)求两个数的最大公约数和最小公倍数?1、最大公约数思路:大数除以小数,如果能够整数,则小数...

  • 算法拾遗

    1.求最大公约数 欧几里得算法(辗转相除法)方式:用除数与余数反复做除,余数为0时,除数为两者最大公约数证明:gc...

  • GCD欧几里得算法 & EXGCD扩展欧几里得算法

    欧几里得算法欧几里得算法 (Euclidean algorithm) 是用来解决最大公约数问题的,通常采用辗转相除...

  • 最大公约数和最小公倍数

    最大公约数 一般用gcd(a,b)来表示a和b的最大公约数,而求解最大公约数常用欧几里得算法(即辗转相除法) 如果...

  • 2019-02-27 辗转相除(数学证明及算法)

    1.概述 辗转相除,又称欧几里得算法,用于求最大公约数Java实现如下: 这个算法实现很简单,但是这么难理解可是让...

网友评论

      本文标题:求最大公约数----欧几里得算法

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