💻 源代码
import time
def find_pythagorean_triples(n):
"""
找出所有满足 a+b+c=n 且 a²+b²=c² 的勾股数
时间复杂度: O(n³)
"""
start_time = time.time()
count = 0
for a in range(0, n + 1):
for b in range(0, n + 1):
for c in range(0, n + 1):
if a + b + c == n and a**2 + b**2 == c**2:
print(f"a,b,c: {a},{b},{c}")
count += 1
end_time = time.time()
print(f"执行时间: {end_time - start_time:.2f}秒")
print(f"找到 {count} 组解")
return count
# 示例: n=1000时,T(n) = n³ × 2
find_pythagorean_triples(1000)
# 时间复杂度分析:
# T(n) = n × n × n × 2 = 2n³
# 大O表示法: O(n³)