上界估算,
与
交点 得
#include"iostream"
using namespace std;
#define MAX_N 2540160
bool iscur(int x,int *num){
int value=x, temp=0;
while(x){
temp+=num[x%10];
x/=10;
}
return temp==value;
}
int main(){
int num[10]={0};
num[0]=1;
for(int i=1;i<10;i++){
num[i]=num[i-1]*i;
}
int sum=0;
for(int i=3;i<MAX_N;i++){
if(iscur(i,num))sum+=i;
}
cout<<sum<<endl;
return 0;
}