方法1:递归
#include<stdio.h>
int gcd(int a,int b)
{
return a<=b?(b%a==0?a:gcd(a,b%a)):(a%b==0?b:gcd(b,a%b));
}
int main()
{
int a,b;
while(1)
{
printf("请输入ab两个数:\n");
scanf("%d%d",&a,&b);
if(a<=0 || b<=0) break;
else
{
printf("%d\n",gcd(a,b));
}
}
return 0;
}
方法2:非递归
#include<stdio.h>
int main()
{
int a,b,temp;
while(1)
{
printf("请输入ab两个数:\n");
scanf("%d%d",&a,&b);
if(a<=0 || b<=0) break;
else
{
while(b!=0)
{
temp=a%b;
a=b;
b=temp;
}
printf("最大公约数是:%d\n",a);
}
}
return 0;
}