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 }