Description
输入Num组正整数M和N,输出它们的最大公约数X。要求使用递归方式实现。提示:input()语句是以str的形式读取一整行的的数据,所以需要在input()语句读取一整行的输入后,先用split()对读取的字符串进行切割,然后再做进一步的处理转化成int类型。
Input
首先输入一个正整数num,代表接下来将输入num组测试数据。然后接下来将分别输入每一组的两个正整数M和N。(M>0,N>0)
Output
分别输出每组正整数的最大公约数X。
Sample Input 1 | Sample Output 1 |
---|---|
4 | |
45 15 | 15 |
60 20 | 20 |
70 80 | 10 |
100 99 | 1 |
coding:
def greatest_common_divisor(x,y):
if x >= y:
if x % y == 0:
return y
else:
return greatest_common_divisor(x-y,y)
else:
if y % x == 0:
return x
else:
return greatest_common_divisor(y-x,x)
n = input()
for i in range(int(n)):
temp = list(map(int, input().split(" ")))
print(greatest_common_divisor(temp[0], temp[1]))