这类问题只能通过枚举试算来解决。但是,按照题主的定义,编程计算范围非常之大,耗时难以承受。
举个例子来说,可以主动构造一个200位的完全平方数,求得它的各位数字之和为928,因此928就是符合条件的完全平方数数字之和。这个计算结果如下图:
然而,要反过来对1到2021范围的数进行验证就很不容易了。因为,各位数字之和为2000的情形,按照平均每位上的数字大小为5来估计,也要验证到400位整数。如果考虑极端情况每位上的数字平均为0.5时,需要验证到4000位整数。
这显然是无法完成的。除非找到数学方法来直接找到这些数。
编程在16位整数范围内进行了搜索。