欧几里得算法求两个非负整数的最大公因子

本文介绍了一种使用欧几里得算法来计算两个非负整数最大公因子的方法,并提供了一个C语言实现的例子。该算法通过迭代取余数的方式逐步逼近并最终找出两个数的最大公约数。

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

一.欧几里得算法:

 

1.计算两个整数的最大公因子的欧几里得算法描述:

  输入:两个非负整数a,b,且a>=b;

  输出:a,b的最大公因子;

  1).当b!=0时,做如下操作:

     1.1 令r=a%b,a=b,b=r。

  2).返回(a);

2.代码如下

#include<stdio.h>
void input(int &a,int &b)
{
 int data1,data2;
 scanf("%d,%d",&a,&b);
}
int Euclid_gcd (int max,int min)
{
 int r,temp;
 if(max<min)
 {
  temp=max;
  max=min;
  min=temp;
 }
 while(min!=0)
 {
  r=max%min;
  max=min;
  min=r;
 }
 return max;
}
void main()
{
 int a,b;
 printf("请输入两个非负整数数:");
 input(a,b);
 printf("两数的最大公约数是:gcd(%d,%d)=%d/n",a,b,Euclid_gcd(a,b));
}
/*运行结果:
请输入两个非负整数数:3458,4864
两数的最大公约数是:gcd(3458,4864)=38

请输入两个非负整数数:4864,3458
两数的最大公约数是:gcd(4864,3458)=38

请输入两个非负整数数:12,16
两数的最大公约数是:gcd(12,16)=4
*/

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值