java - 算法 - 求最大公约数

= =看李永乐的视频想到的算法。。。。。。觉得不错所以记录一下

原理: 欧几里得的反转相除法

104 和 40的最大公约数:

104 ÷ 40 = 2 。。。 24

40 ÷ 24 = 1 。。。 16

24 ÷ 16 = 1 。。。 8

16 ÷ 8 = 2 

没有余数,则8就是最大公约数

reference: https://www.bilibili.com/video/av77974575

代码:

public class Gcd {
    public static void main(String[] main){
        int a = 150;
        int b = 24;
        //求最大公约数
        while(true){
            int y = a % b;
            if(y == 0){
                System.out.println(b);
                break;
            }
            a = b;
            b = y;
        }
    }
}

猜你喜欢

转载自www.cnblogs.com/clamp7724/p/11985265.html