题目描述
给定两个正整数 A,BA,B,求它们的最大公约数。
输入描述
第 11 行为一个整数 TT,表示测试数据数量。
接下来的 TT 行每行包含两个正整数 A,BA,B。
1 \leq T \leq 10^51≤T≤105,1\leq A , B \leq 10^91≤A,B≤109。
输出描述
输出共 TT 行,每行包含一个整数,表示答案。
输入输出样例
示例 1
输入
5
2 4
3 7
5 10
6 8
7 9
输出
2
1
5
2
1
运行限制
- 最大运行时间:2s
- 最大运行内存: 128M
解法
import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int T = scan.nextInt();
int A, B, x;
int[] arr = new int[T];
for (int i = 0; i < T; i++) {
A = scan.nextInt();
B = scan.nextInt();
arr[i] = fun(A,B);
}
for (int i : arr) {
System.out.println(i);
}
scan.close();
}
public static int fun(int a, int b) {
if(a<b){
int x=a;
a=b;
b=x;
}
if(a%b==0){
return b;
}else{
return fun(b,a%b);
}
}
}