算法提高 五次方数
时间限制:1.0s 内存限制:256.0MB
问题描述
对一个数十进制表示时的每一位数字乘五次方再求和,会得到一个数的五次方数
例如:1024的五次方数为1+0+32+1024=1057
有这样一些神奇的数,它的五次方数就是它自己,而且这样的数竟然只有有限多个
从小到大输出所有这样的数
输出格式
每个数独立一行输出
样例输出
10
200
3000
分析:首先,于是的五次方数为,所以要求的数不会是七位数以及更大的数。
#include <stdio.h>
int powerof5(int x)
{
int prod = 1;
for (int i = 1; i <= 5; ++i)
prod *= x;
return prod;
}
int main()
{
for (int i = 2; i <= 999999; ++i)
{
int dump = i, sum = 0;
while (dump)
{
sum += powerof5(dump % 10);
dump /= 10;
}
if (sum == i)
printf("%d\n", i);
}
return 0;
}