辗转相除法 求最大公约数

简介: 辗转相除法 求最大公约数

最大公约数:同时可以整除a和b(a和b不能全为零!)的公因数里最大的那个,可记作:gcd(a,b)

辗转相除法:对于给定的两个数,用较大的数除以较小的数。若余数不为零,则将余数和较小的数构成新的一对数,继续上面的除法,直到大数被小数除尽,则这时较小的数就是原来两个数的最大公约数。

根据欧几里得的辗转相除法,gcd(a,b)有如下性质:

1.gcd(a,b)= gcd(b,a)

2.gcd(a,b)=gcd(-a,b)

3.gcd(a,0)=|a|

4.gcd(a,b)=gcd(b,a%b),(0<=a%,b<b)

public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.print("请输入一个数:");
        long  a=scanner.nextLong();
        System.out.print("请再输入一个数:");
        long  b=scanner.nextLong();
        System.out.print("gcd("+a+","+b+")=");
        long k;
//        不用讨论a b 大小
//        因为 一个小的数对大的数取余得的是小数本身,
//        通过a=b,b=k 可以达到大小数互换从而继续取余
        do {
            k=a%b;
            a=b;
            b=k;
        }while (k!=0);
        System.out.println(a);
    }
相关文章
|
2月前
辗转相除法
【10月更文挑战第21天】辗转相除法。
42 2
|
6月前
|
JavaScript 前端开发 Java
最大公约数
【6月更文挑战第23天】
77 4
|
6月前
|
移动开发 算法
最大公约数和最小公倍数
【6月更文挑战第8天】最大公约数和最小公倍数。
69 9
|
6月前
每日一数——最大公约数与最小公倍数
每日一数——最大公约数与最小公倍数
|
7月前
|
算法
辗转相除法求最大公约数
辗转相除法求最大公约数
|
7月前
|
算法
更相减损术求最大公约数
更相减损术求最大公约数
|
7月前
|
算法
详解最大公约数和最小公倍数
详解最大公约数和最小公倍数
求最大公约数
求最大公约数
78 0
|
人工智能 BI
求最大公约数和最小公倍数
求最大公约数和最小公倍数
94 0