How to check if a number is curious number (sum of the factorials of each digit equal to itself) in C++

1 Answer

0 votes
#include <iostream>

long factorial(long n) {
    return (n == 1 || n == 0) ? 1 : n * factorial(n - 1);
}
 
int sumFactorialDigits(long num) {
    int sum = 0;
 
    while (num != 0) {
        sum += factorial(num % 10);
        num /= 10;
    }
 
    return sum;
}
 
int main(void) {
    long number = 145;
 
    if (number == sumFactorialDigits(number)) {
        std::cout << "Curious number";
    }
    else {
        std::cout << "Not curious number";
    }
}
 
 
 
 
/*
run:
 
Curious number
 
*/

 



answered Jan 2, 2024 by avibootz
...