//递归版本
#include<stdio.h>
int gcd(int a,int b)
{
if(b==0)
{
return a;
}
else
{
return gcd(b,a%b);
}
}
int main()
{
int a,b=0;
while(scanf("%d%d",&a,&b)!=EOF)
{
printf("%d\n",gcd(a,b));
}
}
非递归版本
#include<stdio.h>
int gcd(int a,int b)
{
while(b!=0)
{
int t=a%b;
a=b;
b=t;
}
return a;
}
int main()
{
int a,b=0;
while(scanf("%d%d",&a,&b)!=EOF)
{
printf("%d\n",gcd(a,b));
}
}
//单行实现
int gcd(int a, int b){return b == 0? a : gcd(b, a % b);}