/**
* C program to print all Strong Numbers between 1 to n
*/
#include <stdio.h>
int main( )
{
int i, j, cur, n;
long fact, sum;
/* Reads a number from user */
printf ( "Find Strong numbers between 1 to " ) ; n= 6000000 ;
printf ( "All Strong numbers between 1 to %d are:\n " , n
) ;
/* Finds all Strong numbers between 1 to n */
for ( i= 1 ; i<= n; i++ )
{
/* Number to check whether it is Strong number or not */
cur = i;
sum = 0 ;
/*
* Finds the sum of factorial of each digits
*/
while ( cur!= 0 )
{
fact = 1 ;
/* Computes factorial of last digit i.e. cur%10 */
for ( j= 1 ; j<= cur% 10 ; j++ )
{
fact = fact * j;
}
sum = sum + fact;
cur = cur / 10 ;
}
/*
* Checks if it is Strong number then print it
*/
if ( sum== i)
{
printf ( "%d is Strong number\n " , i
) ; }
}
return 0 ;
}
LyoqCiAqIEMgcHJvZ3JhbSB0byBwcmludCBhbGwgU3Ryb25nIE51bWJlcnMgYmV0d2VlbiAxIHRvIG4KICovCiAKI2luY2x1ZGUgPHN0ZGlvLmg+CiAKaW50IG1haW4oKQp7CiAgICBpbnQgaSwgaiwgY3VyLCBuOwogICAgbG9uZyBmYWN0LCBzdW07CiAKICAgIC8qIFJlYWRzIGEgbnVtYmVyIGZyb20gdXNlciAqLwogICAgcHJpbnRmKCJGaW5kIFN0cm9uZyBudW1iZXJzIGJldHdlZW4gMSB0byAiKTsKCW49IDYwMDAwMDA7CgkKIAogCiAgICBwcmludGYoIkFsbCBTdHJvbmcgbnVtYmVycyBiZXR3ZWVuIDEgdG8gJWQgYXJlOlxuIiwgbik7CiAgICAgCiAgICAvKiBGaW5kcyBhbGwgU3Ryb25nIG51bWJlcnMgYmV0d2VlbiAxIHRvIG4gKi8KICAgIGZvcihpPTE7IGk8PW47IGkrKykKICAgIHsKICAgICAgICAvKiBOdW1iZXIgdG8gY2hlY2sgd2hldGhlciBpdCBpcyBTdHJvbmcgbnVtYmVyIG9yIG5vdCAqLwogICAgICAgIGN1ciA9IGk7CiAKICAgICAgICBzdW0gPSAwOwogCiAgICAgICAgLyoKICAgICAgICAgKiBGaW5kcyB0aGUgc3VtIG9mIGZhY3RvcmlhbCBvZiBlYWNoIGRpZ2l0cwogICAgICAgICAqLwogICAgICAgIHdoaWxlKGN1ciE9MCkKICAgICAgICB7CiAgICAgICAgICAgIGZhY3QgPSAxOwogICAgICAgICAgICAgCiAgICAgICAgICAgIC8qIENvbXB1dGVzIGZhY3RvcmlhbCBvZiBsYXN0IGRpZ2l0IGkuZS4gY3VyJTEwICovCiAgICAgICAgICAgIGZvciggaj0xOyBqPD1jdXIlMTA7IGorKykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgZmFjdCA9IGZhY3QgKiBqOwogICAgICAgICAgICB9CiAKICAgICAgICAgICAgc3VtID0gc3VtICsgZmFjdDsgCiAKICAgICAgICAgICAgY3VyID0gY3VyIC8gMTA7CiAgICAgICAgfQogICAgICAgICAKICAgICAgICAvKgogICAgICAgICAqIENoZWNrcyBpZiBpdCBpcyBTdHJvbmcgbnVtYmVyIHRoZW4gcHJpbnQgaXQKICAgICAgICAgKi8gCiAgICAgICAgaWYoc3VtPT1pKQogICAgICAgIHsKICAgICAgICAgICAgcHJpbnRmKCIlZCBpcyBTdHJvbmcgbnVtYmVyXG4iLCBpKTsKICAgICAgICB9CiAgICB9CiAKICAgIHJldHVybiAwOwp9