水仙花数是指一个 n 位数 ( n >= 3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3 + 3^3 = 153)
给出一个整数M,求 >= M的最小的水仙花数。
Input
一个整数M(10 <= M <= 1000)
Output
输出>= M的最小的水仙花数
Input示例
99
Output示例
153
#include<stdio.h>
int main()
{
int M;
scanf("%d",&M);
int m[100] = {0};
int a,b,c,d,num = 0;
for(int i=100;i<1000;i++)
{
a = i/100;
b = i/10%10;
c = i%10;
if(i == a*a*a+b*b*b+c*c*c)
{
//printf("%d\n",i);
m[num] = i;
num++;
}
}//三位数
for(int i=1000;i < 10000;i++)
{
a = i/1000;
b = i/100%10;
c = i/10%10;
d = i%10;
if(i == a*a*a*a+b*b*b*b+c*c*c*c+d*d*d*d)
{
//printf("%d\n",i);
m[num] = i;
num ++;
}
}
for(int i=0;i<100;i++)
{
if(M <= m[i])
{
printf("%d\n",m[i]);
break;
}
}
}