Euler_21.cpp (418B)
1 #include "Euler.h" 2 3 int Euler::AmicableNumbers() 4 { 5 std::vector<unsigned> sumDivisors(10001, 0); 6 7 for(int i = 2; i < 10000; ++i) 8 sumDivisors[i] = EulerUtility::sumOfDivisors(i) - i; 9 10 int sum = 0; 11 12 for (unsigned i = 0; i < sumDivisors.size(); ++i) 13 if (sumDivisors[i] < sumDivisors.size() && sumDivisors[sumDivisors[i]] == i && sumDivisors[i] != i) 14 sum += i; 15 16 return sum; 17 }