def find_pythagorean_triples(max_value):
"""找出所有不超过max_value的勾股数"""
triples = []
# 遍历所有可能的a、b、c值
for a in range(1, max_value + 1):
for b in range(a, max_value + 1): # 从a开始避免重复
c_squared = a**2 + b**2
c = int(c_squared**0.5)
# 检查c是否为整数且不超过最大值
if c <= max_value and c**2 == c_squared:
triples.append((a, b, c))
return triples
# 找出25以内的勾股数
max_n = 25
pythagorean_triples = find_pythagorean_triples(max_n)
# 输出结果
print(f"{max_n}以内的勾股数有 {len(pythagorean_triples)} 组:")
for i, triple in enumerate(pythagorean_triples, 1):
print(f"{i}. {triple} (验证: {triple[0]}^2 + {triple[1]}^2 = {triple[2]}^2 = {triple[0]**2 + triple[1]**2})")
程序执行结果如下:

2万+

被折叠的 条评论
为什么被折叠?



