import java.util.Scanner;
/**
* 如果三个正整数A、B、C ,A²+B²=C²则为勾股数
* 如果ABC之间两两互质,即A与B,A与C,B与C均互质没有公约数,
* 则称其为勾股数元组。
* 请求出给定n~m范围内所有的勾股数元组
* */
public class Main0001 {
public static void main(String[] args) {
try (Scanner scanner = new Scanner(System.in)) {
int n = scanner.nextInt();
int m = scanner.nextInt();
solution(n, m);
}
}
private static void solution(int n, int m) {
int count = 0;
for (int a = n; a < m - 1; a++) {
for (int b = a + 1; b < m; b++) {
for (int c = b + 1; c < m + 1; c++) {
if (relativelyPrime(a, b) &&
relativelyPrime(b, c) &&
relativelyPrime(a, c) &&
a * a + b * b == c * c) {
count++;
System.out.printf("%d %d %d\n", a, b, c);
}
}
}
}
if (count == 0) {
System.out.println("Na");
}
}
/*
* 判断互为质数
* */
private static boolean relativelyPrime(int x, int y) {
int min = Math.min(x, y);
double sqrt = Math.sqrt(min);
for (int i = 2; i < sqrt; i++) {
if (x % i == 0 && y % i == 0) {
return false;
}
}
return true;
}
}
机试0001
于 2022-05-30 15:03:00 首次发布