题目描述
输入描述
输出描述
要求输出 4 个非负整数,按从小到大排序,中间用空格分开
输入输出样例
示例
输入
12
输出
0 2 2 2
运行限制
- 最大运行时间:3s
- 最大运行内存: 256M
题意分析
解题思路
代码建议
使用函数return跳出多重循环
答案
def sqrt(x): #定义一个开根函数
return int(x**0.5) #将开根结果定义为整数
def is_square(n): #判断一个数是不是完全平方数的方法是进行下取整的开根
root=sqrt(n)
return root*root==n
def upper(k,n): #计算x上界
return sqrt(n/k)
def loop(n): #定义一个循环,把目标值n作为一个参数传进去
for a in range(0,upper(4,n)):
i=a*a+0
for b in range(a,upper(3,n)):
j=b*b+i
for c in range(b,upper(2,n)): #枚举三层就可以了
k=c*c+j
d_square=n-k
if d_square>c*c:
if is_square(d_square):
d=sqrt(d_square)
return(a,b,c,d) #返回元组
if __name__ =='__main__': #函数主入口,而非主函数
n=int(input())
print(*loop(n)) #返回的元组不符合要求,加星号展开元组