自幂数
自幂数是指一个 n 位数,它的每个位上的数字的 n 次幂之和等于它本身。(例如:当n为3时,有1^3 + 5^3 + 3^3 = 153,153即是n为3时的一个自幂数)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
#include<iostream> #include<cstdio> #include<cmath> using namespace std; int pow(int x,int y) { int t=1; while(y) { if(y&1)t*=x; x*=x; y>>=1; } return t; } int main() { for(int i=1;i<=100000000;i++) { int t=i,s=0,sum=0; while(t) { t/=10;s++; } t=i; while(t) { sum+=pow(t%10,s);t/=10; } if(sum==i)printf("%d\n",i); } return 0; } |
Subscribe