Filename: prob39.c
/* If p is the perimeter of a right angle triangle with integral length sides, {a,b,c}, there are exactly three solutions for p = 120. * * {20,48,52}, {24,45,51}, {30,40,50} * * For which value of p 1000, is the number of solutions maximised? */ #include <stdio.h> inline int solutions(const int p) { int num_solutions = 0; int i, j; for(i=2; i<=p-2; ++i) { for(j=1; j < i && j <= (p-i)-1; ++j) { if((i*i + j*j) == (p-(i+j))*(p-(i+j))) { num_solutions++; } } } return num_solutions; } int main() { int max = -1; int max_perim = 0; int p; for(p = 3; p <=1000; ++p) { if(max < solutions(p)) { max = solutions(p); max_perim = p; } } printf("max_perim: %d\n", max_perim); return 0; }
syntax highlighted by Code2HTML, v. 0.9.1
No comments:
Post a Comment