#include typedef unsigned int uint; uint count(uint x) { uint i; for (i = 0; x > 0; ++i) { x /= 10; } return i; } uint power(uint d, const uint p) { uint i, x = d; if ( p == 0 ) { return 1; } for (i = 1; i < p ; ++i) { d *= x; } return d; } int main() { uint n, i; printf("Enter a number: "); scanf("%u", &n); for (i = 0; i <= n; ++i) { uint s = 0, r = i, p = count(i); while ( r > 0 ) { s += power( r % 10 , p); r /= 10; } if ( s == i ) { printf("%u\n", i); } } return 0; }