四方定理为,所有的自然数最多用四个数的平方和就可以表示出来,用Python编写一个程序,输入一个整数,将其表示为平方和相加的形式,若有多种情况符合要求,只需要显示第一种
时间: 2024-12-14 21:14:21 浏览: 9
Python例题(一) 输入一个正整数判断是不是素数
四方定理,也称为Waring's problem,是指任何正整数都可以表示成不超过四个完全平方数之和。虽然这个问题没有简单的公式解决方案,但我们可以通过暴力搜索的方式来尝试找到这样的表示。下面是一个简单的Python程序,用于找出给定整数的最小四平方和表示:
```python
def four_squares(n):
def is_square(num):
return num == int(num**0.5)**2
# 尝试从大到小的平方数组合
for a in range(int(n**0.5), -1, -1): # 正方形最大值为n的平方根
for b in range(a, -1, -1):
c = n - a**2 - b**2
d = 0 # 初始化第四个平方数
if c >= 0 and is_square(c) and is_square(d):
return a**2, b**2, c**2, d**2
raise ValueError(f"无法将{n}表示为四个或更少的平方数之和")
# 输入一个整数,获取其表示
try:
n = int(input("请输入一个正整数:"))
result = four_squares(n)
print(f"{n} 可以表示为:{result[0]}^2 + {result[1]}^2 + {result[2]}^2 + {result[3]}^2")
except ValueError:
print("输入无效,请确保输入的是正整数。")
```
这个程序并不是最优解,因为它逐个检查所有可能的组合。对于较大的数字,效率不高。然而,对于较小的输入,它可以有效地工作。
阅读全文