欧几里得算法及其证明

概念

欧几里得算法是一种用于计算两个整数的最大公约数(GCD)的算法。它基于欧几里得定理,即两个整数的最大公约数等于其中较小的数和两数的差的最大公约数。欧几里得算法是一种非常高效的算法,可以快速地计算两个整数的最大公约数。

代码实现

public class Main {
    public static void main(String[] args) {
        int num1 = 48, num2 = 64;
        System.out.println("The GCD of " + num1 +" and " + num2 + " is " + gcd(num1, num2));
    }

    public static int gcd(int num1, int num2) {
        if (num2 == 0) {
            return num1;
        }
        return gcd(num2, num1 % num2);
    }
}

证明

有数字a、b,求其最大公约数。

1、如果a比b大,那么可以表示为:a = bq + r => r = a - bq。  r为a与b的余数。

2、假设最大公约数是d,那么a = md,b=nd。

3、r / d = (a - qb) / d = m - nq  其中m-qn是一个常数,说明a与b的余数也一定是最大公约数的倍数

4、通过i次递归,最终得到余数为0。

r_{i} = a_{i} - q_{i}b_{i}

r_{i}为0,说明此时a_{i}b_{i}的倍数,同时他们本身也是最大公约数的倍数,b_{i}即为最大公约数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值