使用java帮我实现以下功能gcd(x, y) 代表 x 和 y 的最大公约数。 如果有多个可行的答案,请输出任意一个。 Input 第一行包含一个整数 T(1 ≤ T ≤ 105 ),表示测试用例的组数。 对于每组测试用例: 仅输入一行,包含一个正整数 n(1 ≤ n ≤ 106 )。 Output 对于每组测试用例: 仅输出一行,包含两个正整数 x, y。如果有多个可行的答案,请输出任意一个。
时间: 2024-02-11 12:07:49 浏览: 171
java求最大公约数与最小公倍数的方法示例
5星 · 资源好评率100%
好的,以下是使用Java实现的代码:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int t = sc.nextInt();
while (t-- > 0) {
int n = sc.nextInt();
int x = n / 2, y = n - x;
while (gcd(x, y) != 1) {
x--;
y++;
}
System.out.println(x + " " + y);
}
}
// 求最大公约数
public static int gcd(int a, int b) {
return b == 0 ? a : gcd(b, a % b);
}
}
```
这里采用了较为简单的算法,通过枚举的方式找到两个数的最大公约数为1的情况。时间复杂度较高,但在本题范围内可以通过。
阅读全文