How to sum the factorials of the digits of a number 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 = 345;

    printf("sum factorial digits = %d", sumFactorialDigits(number));

    return 0;
}




/*
run:

sum factorial digits = 150

*/

 



answered Jan 1, 2024 by avibootz
edited Jan 1, 2024 by avibootz

Related questions

...