题目描述:
看着编程热情逐步高涨,并且可以开始运用各种语法的小鲁,小华意识到这是帮助他进一步进阶的时候了。
他喊小鲁过来,嘱咐他说:带着怎样的心学编程很重要,心对了,效果就好,心不对,可能会事倍功半。而编程最需要带着谦卑的心!这意味着我们不要觉得自己比他们聪明,乃要承认自己距离那些历史上的智者有巨大的差距,并且向前人学习。这样的心可以让人恒久成长。
看着云里雾里的小鲁,小华知道他需要实操才能明白这个道理,他给小鲁布置了道经典题:
欧几里得算法又称辗转相除法是总所周知的算法,给定n对正整数a,b,请你求出每对数的最大公约数。
但是有一个条件,请用一行代码完成求最大公约数的运算。
数据范围
1≤n≤10^5,
1≤a,b≤2∗10^9
输入
第一行包含整数n。
接下来n行,每行包含一个整数对a,b。
输出
输出一共n行,每行输出该对整数对的最大公约数
输入样例:
10 111 111 777 777 7777 777 11111 777 16583682 70871575 27870547 47025162 51590293 97432785 4825080 64853463 54282624 58567018 83355874 42258167
输出样例:
111 777 7 1 1 1 1 3 2 7
代码:
#include<stdio.h>
int main()
{
int n;
scanf("%d",&n);
while(n--)
{
int a, b;
scanf("%d%d",&a,&b);
if (a == b)
{
printf("%d\n", a);
}
else
{
while (a != b)
{
if (a > b)
a = a - b;
else
b = b - a;
}
printf("%d\n", a);
}
}
return 0;
}