C语言算法 欧几里得算法

本文介绍了古希腊数学家欧几里得提出的最大公约数算法,详细解释了算法的原理和步骤,并给出了具体的实现代码。

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

算法背景:古希腊数学家,亚历山大港的欧几里得所著的《几何原本》,以系统系统论述几何学而著称,在其中的一卷中,他简要概述了一个求最大公约数的算法。

算法思想:欧几里得算法的思想是重复使用下列等式,知道n%m=0为止

       gcd( m , n ) = gcd( n = m % n)

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

用于计算欧几里得算法gcd(m,n)

第一步:如果n=0,返回值m则作为结果。通过计算过程结束,否则进入第二步。

第二步:m除以n,将余数赋值给R;

第三步:将n的值赋给m,将r的值赋值给n。返回第一步


代码

int gcd(int a,int b)
{
if(a<b)
{
int temp=b;
b=a;
a=temp;
}
while(a%b)
{
int r = a%b;
a=b;
b=r;
r=a%b;
}
return b;
}
#include<stdio.h>
main()
{
int m,n;
scanf("%d %d",&m,&n);

printf("%d",gcd(m,n));
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值