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 <stdio.h>

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)) {
        printf("Curious number");
    }
    else {
        printf("Not curious number");
    }

    return 0;
}




/*
run:

Curious number

*/

 



answered Jan 1, 2024 by avibootz
...