思路:
最大公约数:最大公约数是两个或多个整数共有约数中最大的一个
运用辗转相除法:
核心代码:
void fun(int A,int B)
{
int max,min,a=1;
max=A>B?A:B;
min=A>B?B:A;
while(a) //辗转相除法
{
a=max%min;
max=min>a?min:a;
min=min>a?a:min;
}
printf("%d\n",max);
}
源代码:
//给定两个正整数A,B,求它们的最大公约数。
#include<stdio.h>
void fun(int A,int B)
{
int max,min,a=1;
max=A>B?A:B;
min=A>B?B:A;
while(a) //辗转相除法
{
a=max%min;
max=min>a?min:a;
min=min>a?a:min;
}
printf("%d\n",max);
}
int main()
{
int A,B,T;
int i;
scanf("%d",&T); //输入T个数
for(i=0; i<T; i++)
{
scanf("%d%d",&A,&B); //输入A,B
fun(A,B);
}
return 0;
}
结果:
结果和题目例子看起来不一样,因为我是在每次输入时求出它的最大公约数,发现这种最简单方便。
在蓝桥杯内是通过的。