Project Euler

Project Euler #34 : Digit factorials

jyheo98 2020. 8. 8. 13:01
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
VI fact;
 
bool solve(int n) {
    int sum = 0;
    int temp = n;
    while (n > 0) {
        sum += fact[n % 10];
        n /= 10;
    }
    return temp == sum;
}
 
int main() {
    fact.push_back(1);
    int mul = 1;
    for (int i = 1; i <= 9; i++) {
        mul *= i;
        fact.push_back(mul);
    }
    llong sum = 0;
    for (int i = 3; i <= 10000000; i++) {
        if (solve(i)) sum += i;
    }
    cout << sum;
}
cs