您的位置:首页 > 其它

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

2011-04-29 11:46 218 查看
一.欧几里得算法:

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

*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: