project-euler

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

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 }