问题描述:任意大自然数,总是能分解为最多4个平方数的和,所谓平方数是指它是一个自然数的平方。例如:72884 = 4^2 + 138^2 + 232^2,33788 = 1^2 + 3^2 + 17^2 + 183^2。
感谢国防科技大学刘万伟老师提供的原始问题,感谢中国传媒大学胡凤国老师的交流,由于作者署名长度最多8个字符,我的就只显示一个姓好了^_^。
本文重点演示Python嵌套函数定义和标准库对象itertools.combinations()用法,并没有涉及复杂的数学算法,效率不是很高,后面再陆续分享更多有关代码,也欢迎大家提供效率更高的算法。
运行结果: