四平方和
代码:
python
from copy import deepcopy
n = int(input())
maxn = int(5e6) + 10
dic = dict()
for a in range(maxn):
if a * a > n:
break
for b in range(a,maxn):
if a * a + b * b > n:
break
if dic.get(a*a+b*b) is None:
dic[a*a+b*b] = (a,b)
ans = [maxn for _ in range(4)]
for a in sorted(dic.keys()):
b = n - a
if a > b:
break
if b in dic.keys():
tmp = list(dic[a]+dic[b])
tmp.sort()
for i in range(4):
if tmp[i] != ans[i]:
if tmp[i] < ans[i]:
ans = deepcopy(tmp)
break
for i in range(3):
print(ans[i], end = ' ')
print(ans[-1])
作者:波尔k
链接:https://www.acwing.com/activity/content/code/content/8139085/
来源:AcWing
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。