project-euler

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

Euler_38.cpp (753B)


      1 #include "Euler.h"
      2 
      3 int Euler::PanDigitalMultiples()
      4 {
      5     int greatestPanDigitalMultiple = 918273645;
      6 
      7     for (int i = 9182; i < 9876; ++i) //9182 is the first 4 digits of the above no, 9876 is the int with unique digits < 10000
      8     {
      9         if (EulerUtility::hasUniqueDigits(i, false))
     10         {
     11             if (EulerUtility::hasUniqueDigits(i * 2, false))
     12             {
     13                 int potentialPanDigital = atoi((std::to_string(i) + std::to_string(i * 2)).c_str());
     14 
     15                 if ((EulerUtility::hasUniqueDigits(potentialPanDigital, false)) && (potentialPanDigital > greatestPanDigitalMultiple))
     16                     greatestPanDigitalMultiple = potentialPanDigital;
     17             }
     18         }
     19     }
     20 
     21     return greatestPanDigitalMultiple;
     22 }