1. 问题描述:
一个平方和三元组 (a,b,c) 指的是满足 a ^ 2 + b ^ 2 = c ^ 2 的整数三元组 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
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/count-square-sum-triples
2. 思路分析:
分析题目可以知道我们暴力枚举即可,一开始使用的是三重循环暴力枚举但是提交上去超时了,后面修改为了两重循环才通过(python语言),对于c++或者c语言使用三重循环可以通过。
3. 代码如下:
import math
class Solution:
def countTriples(self, n: int) -> int:
res = 0
for a in range(1, n + 1):
for b in range(1, n + 1):
c = a * a + b * b
if int(math.sqrt(c)) * int(math.sqrt(c)) == c:
if c <= n * n:
res += 1
return res