project-euler

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

Euler_69.cpp (466B)


      1 #include "Euler.h"
      2 
      3 int Euler::EulerTotient()
      4 {
      5     std::vector<int> primes = EulerUtility::getPrimesUnderCeiling(1e6);
      6     std::vector<int> primesIndexed = EulerUtility::getPrimesUnderCeilingIndexed(1e6);
      7     double NoverPhi = 0, n = 0;
      8 
      9     for (double i = 2; i <= 1e6; ++i)
     10     {
     11         int p = EulerUtility::phi(i, primes, primesIndexed);
     12 
     13         if (i / p > NoverPhi)
     14         {
     15             NoverPhi = i / p;
     16             n = i;
     17         }
     18     }
     19 
     20     return n;
     21 }