Euler_39.cpp (591B)
1 #include "Euler.h" 2 3 int Euler::MaximumRightAngledTriangles() 4 { 5 int perimeter = 120; 6 int maximum = 3; 7 8 for (int p = 121; p <= 1000; ++p) 9 { 10 int solutions = 0; 11 12 for (int i = 1; i < p / 2 + 1; ++i) 13 for (int j = 1; j <= i; ++ j) 14 if (EulerUtility::isPerfectSquare(pow(i, 2) + pow(j, 2))) 15 if ((i + j + sqrt(pow(i, 2) + pow(j, 2))) == p) 16 ++solutions; 17 18 if (solutions > maximum) 19 { 20 maximum = solutions; 21 perimeter = p; 22 } 23 } 24 25 return perimeter; 26 }