这里将介绍的是求两个正整数的最大公约数(Greatest Common Divisor,GCD)的三种方法,分别为连续整除检测法,欧几里得算法,相减法。下面来介绍这三种方法。
连续整除检测法
这种方法的实现原理是,先取出两个数中的较小数,赋值给temp(temporary),接着用其中一个数与temp求余,若余数不为0,则temp-1,循环该步骤直到余数为0。再用另一个数,重复此步骤,最后得出的值为这两个数的最大公约数。
代码如下:
#include<stdio.h>
int main()
{
int i=0;
int m,n,temp;
printf("请输入两个正整数:");
scanf("%d %d",&m,&n);
if(m>n)
{
temp=n;
}else //m=n在此不需要单独讨论
{
temp=m;
}
for(i=temp;i>0;i--) //如果从i=1开始,得出公约数也无法保证其为最大公约数。
{
if(m%i==0 && n%i==0)
break;
}
printf("%d和%d的最大公约数是%d",m,n,i)<