一个 平方和三元组 (a,b,c)
指的是满足 a2 + b2 = c2
的 整数 三元组 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) 。
class Solution:
def countTriples(self, n: int) -> int:
cnt = 0
for i in range(1,n+1):
for j in range(i+1, n+1):
m=i * i + j * j
k = math.sqrt(m)
if int(k) == k and k <= n:
cnt += 2
return cnt
class Solution:
def countTriples(self, n: int) -> int:
count = 0
for a in range(1, n + 1):
for b in range(a, n + 1):
for c in range(b, n + 1):
if a * a + b * b == c * c:
if a == b:
count += 1 # (a, a, c) counts only once
else:
count += 2 # (a, b, c) and (b, a, c) both count
return count