题意:判断一个数 N 的每一位的5次方的和是否为其本身 ,求出所有满足条件的数的和
思路:首先设这个数 N 为 n 位,可以简单的判断一下这个问题的上界 10 ^ n <= 9 ^ 5 × n,可以解得满足条件的最小解为 5 ,所以取 9 ^ 5 × 6 = 354294 作为枚举的上界
/*************************************************************************
> File Name: euler030.c
> Author: WArobot
> Blog: http://www.cnblogs.com/WArobot/
> Created Time: 2017年06月23日 星期五 13时31分53秒
************************************************************************/
#include <stdio.h>
#include <inttypes.h>
#include <math.h>
#define MAX_N 354294
bool isNumber(int32_t n){
int32_t sum = 0 , x = n;
while(x){
sum += (int32_t)pow(x % 10 , 5);
x /= 10;
}
return sum == n;
}
int32_t main(){
int32_t sum = 0;
for(int32_t i = 2 ; i <= MAX_N ; i++){
if( isNumber(i) ) sum += i;
}
printf("%d
",sum);
return 0;
}