Euler_34.cpp (463B)
1 #include "Euler.h" 2 3 llui Euler::DigitFactorials() 4 { 5 int factorials[] = { 1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880 }; 6 llui sum = 0; 7 8 for (unsigned i = 0 ; i < 50000; ++i) 9 { 10 long currentTotal = 0; 11 12 std::vector<int> digits = EulerUtility::intToDigits(i); 13 14 for (int digit : digits) 15 currentTotal += factorials[digit]; 16 17 if (i == currentTotal) 18 sum += currentTotal; 19 } 20 21 return sum - 3; 22 }