【发布时间】:2020-04-13 12:33:22
【问题描述】:
我想得到一个数字'n'并产生Pythagorean triple,它们的总数等于'n'。
例如,对于 n=12,我的输出是 3、4、5 (12 = 3 + 4 + 5)。
我写了下面的代码,但是大数字需要很多时间。请帮助我改进它。
a = int(input())
done = False
for i in range(int(a/4)+1,2,-1):
if done:
break
for j in range(i+1,int(a/2)+1):
k = a-(i+j)
if k <= j:
break
if i**2 + j**2 == k**2:
print(i,j,k)
done = True
break
if done == False:
print('Impossible')
【问题讨论】:
标签: python optimization pythagorean