求两数的最大公因数
法一:更相减损法。
#include<stdio.h>
#include<math.h>
main()
{
int a,b,t;
printf("请输入两个数:");
scanf("%d%d",&a,&b);
for(;;)
{
if(a>b)
{
t=a-b;
a=b;
b=t;
}
else if(a<b)
{
t=b-a;
b=a;
a=t;
}
else break;
}
printf("a,b的最大公因数为%d",a);
}
法二:辗转相除法
#include<stdio.h>
#include<math.h>
main()
{
int a,b,t;
printf("请输入两个数:");
scanf("%d%d",&a,&b);
if(a<b)
{
t=a;
a=b;
b=t;
}
for(;a%b!=0;)
{
t=a%b;
a=b;
b=t;
}
printf("a,b的最大公因数为%d",b);
}
法三:枚举法(缺点:费时。)
#include<stdio.h>
#include<math.h>
main()
{
int a,b,t,i;
printf("请输入两个数:");
scanf("%d%d",&a,&b);
if(a<b)
{
t=a;
a=b;
b=t;
}
for(i=b;;i--)
{
if(a%i==0&&b%i==0)
break;
}
printf("a,b的最大公因数为%d",i);
}