目标
一个 平方和三元组 (a,b,c) 指的是满足 a² + b² = c² 的 整数 三元组 a,b 和 c 。
给你一个整数 n ,请你返回满足 1 <= a, b, c <= n 的 平方和三元组 的数目。
示例 1:
输入:n = 5
输出:2
解释:平方和三元组为 (3,4,5) 和 (4,3,5) 。
示例 2:
输入:n = 10
输出:4
解释:平方和三元组为 (3,4,5),(4,3,5),(6,8,10) 和 (8,6,10) 。
说明:
- 1 <= n <= 250
思路
统计满足 a² + b² = c²,且 1 <= a,b,c <= n 的三元组个数。
暴力枚举 a b,判断平方和是否小于 n²,同时判断开根号之后是否是整数。
代码
/**
* @date 2025-12-08 8:55
*/
public class CountTriples1925 {
public int countTriples(int n) {
int res = 0;
for (int i = 1; i <= n; i++) {
for (int j = 1; j < i && i * i + j * j <= n * n; j++) {
int s = i * i + j * j;
int k = (int) Math.sqrt(s);
if (s == k * k){
res++;
}
}
}
return res * 2;
}
}
性能
