/*
A Pythagorean triple is a set of three positive integers (a, b, c)
that satisfy the equation:
a^2 + b^2 = c^2
These represent the side lengths of a right triangle.
For example, (3, 4, 5) is a Pythagorean triple because:
3^2 + 4^2 = 9 + 16 = 25 = 5^2
This program finds all Pythagorean triples whose perimeter
(a + b + c) is no larger than 100.
*/
#include <stdio.h>
#include <stdbool.h>
// Function to check if (a, b, c) is a Pythagorean triple
bool isPythagoreanTriple(int a, int b, int c) {
return a*a + b*b == c*c;
}
// Function to search and print all triples with perimeter ≤ 100
void findTriples(int maxPerimeter) {
for (int a = 1; a <= maxPerimeter; a++) {
for (int b = a; b <= maxPerimeter; b++) {
for (int c = b; c <= maxPerimeter; c++) {
int perimeter = a + b + c;
if (perimeter > maxPerimeter)
break;
if (isPythagoreanTriple(a, b, c)) {
printf("(%d, %d, %d) perimeter = %d\n",
a, b, c, perimeter);
}
}
}
}
}
int main(void) {
printf("Pythagorean triples with perimeter <= 100:\n\n");
findTriples(100);
return 0;
}
/*
run:
Pythagorean triples with perimeter <= 100:
(3, 4, 5) perimeter = 12
(5, 12, 13) perimeter = 30
(6, 8, 10) perimeter = 24
(7, 24, 25) perimeter = 56
(8, 15, 17) perimeter = 40
(9, 12, 15) perimeter = 36
(9, 40, 41) perimeter = 90
(10, 24, 26) perimeter = 60
(12, 16, 20) perimeter = 48
(12, 35, 37) perimeter = 84
(15, 20, 25) perimeter = 60
(15, 36, 39) perimeter = 90
(16, 30, 34) perimeter = 80
(18, 24, 30) perimeter = 72
(20, 21, 29) perimeter = 70
(21, 28, 35) perimeter = 84
(24, 32, 40) perimeter = 96
*/