算法笔记 之 欧几得算法(求最大公约数)

本文详细介绍了最大公约数的概念及欧几得算法的原理,通过具体实例展示了算法的应用,并提供了C++代码实现,帮助读者理解并掌握求解两个整数最大公约数的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一.最大公约数的定义

  两个不全为0的非负整数m和n的最大公约数即为gcd(m,n),代表着能够被m和n整除(即余数为0)的最大正整数。

二.关于欧几得算法

  古希腊数学家、亚历山大港的欧几里得(公元前3世纪)所著的《几何原本》,以系统论述几何学而著称,在其中的一卷里,他简要的描述了最大公约数算法。用现代数学的术语来表示,欧几得算法(Euclid’s algorithm)采用的方法是重复应用下列等式,直到m mod n 等于0。

gcd(m,n) = gcd(n,m mod n);

因为gcd(m,0) = m,m的最后取值也就是m和n的初值的最大公约数。

举个例子:gcd(60,24) = gcd(24,12) = gcd(12,0) = 12

三.代码实现

 


#include <iostream>
using namespace std;
int main(int argc, const char * argv[]) {
    int x,y,z;
    cout << "请输入你的要求最大公约数的两个不全为0的两个整数:";
    cin >> x >> y;
    while(y!=0)
    {
        z = x % y; //将余数保存下来
        x = y;     //进行赋值
        y = z;
    };
    cout << x << endl;
    return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值