project-euler

https://projecteuler.net/
Log | Files | Refs | README

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 }