project-euler

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

Euler_46.cpp (728B)


      1 #include "Euler.h"
      2 
      3 llui Euler::GoldbachsOtherConjecture()
      4 {
      5     std::vector<int> primes = EulerUtility::getPrimesUnderCeilingIndexed(1000000);
      6 
      7     for (uint64_t i = 33; i < primes.size(); ++i)
      8     {
      9         if ((i & 1) && primes[i] == -1)
     10         {
     11             bool conjecture_holds = false;
     12 
     13             for (uint64_t j = 0; j < i; ++j)
     14             {
     15                 if (primes[j] != -1)
     16                 {
     17                     if (EulerUtility::isPerfectSquare((i - j) / 2))
     18                     {
     19                         conjecture_holds = true;
     20                         break;
     21                     }
     22                 }
     23             }
     24 
     25             if (!conjecture_holds)
     26                 return i;
     27         }
     28     }
     29 
     30     return 0;
     31 }