How to find all the Pythagorean triples with a perimeter no larger than 100 in C

1 Answer

0 votes
/*
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

*/

 



answered 3 days ago by avibootz
...