project-euler

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

Euler_44.cpp (601B)


      1 #include "Euler.h"
      2 
      3 int getPentagonal(int n)
      4 {
      5     return (n * ((3 * n) - 1)) / 2;
      6 }
      7 
      8 int Euler::MinimizedPentagonalDifference()
      9 {
     10     std::vector<int> pentaNos(1, 1);
     11     std::vector<int> potential_D;
     12 
     13     for (;;)
     14     {
     15         pentaNos.push_back(getPentagonal(pentaNos.size() + 1));
     16 
     17         for (uint64_t j = 0; j < pentaNos.size() - 1; ++j)
     18             if (EulerUtility::isPentagonal(pentaNos[pentaNos.size() - 1] + pentaNos[j]) && EulerUtility::isPentagonal(pentaNos[pentaNos.size() - 1] - pentaNos[j]))
     19                 return pentaNos[pentaNos.size() - 1] - pentaNos[j];
     20     }
     21 
     22     return 0;
     23 }