In the previous article, we have discussed about Program to Print Collatz Conjecture for a Given Number in C++ and Python. Let us learn Program to Determine all Pythagorean Triplets in C++ Program.
A Pythagorean triplet is a collection of three positive numbers, a, b, and c, such that a^2 + b^2 = c^2.
Given a limit, find all Pythagorean Triples with values less than that limit.
Examples:
Example1:
Input:
given upper limit =63
Output:
printing the Pythagorean triplets till the upper limit 63 : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 20 7 24 25 24 10 26 21 20 29 16 30 34 9 40 41 35 12 37 32 24 40 27 36 45 20 48 52 11 60 61
Example2:
Input:
given upper limit =175
Output:
printing the Pythagorean triplets till the upper limit 175 : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 20 7 24 25 24 10 26 21 20 29 16 30 34 9 40 41 35 12 37 32 24 40 27 36 45 20 48 52 11 60 61 48 14 50 45 28 53 40 42 58 33 56 65 24 70 74 13 84 85 63 16 65 60 32 68 55 48 73 48 64 80 39 80 89 28 96 100 15 112 113 80 18 82 77 36 85 72 54 90 65 72 97 56 90 106 45 108 117 32 126 130 17 144 145 99 20 101 96 40 104 91 60 109 84 80 116 75 100 125 64 120 136 51 140 149 36 160 164
Find all Pythagorean triplets in the given range in C++ and Python
A simple solution is to use three nested loops to generate these triplets that are less than the provided limit. Check if the Pythagorean condition is true for each triplet; if so, print the triplet. This solution has a time complexity of O(limit3), where ‘limit’ is the stated limit.
An Efficient Solution will print all triplets in O(k) time, where k is the number of triplets to be printed. The solution is to apply the Pythagorean triplet’s square sum connection, i.e., addition of squares a and b equals square of c, and then represent these numbers in terms of m and n.
For every choice of positive integer m and n, the formula of Euclid creates Pythagorean Triplets:
a=m^2 -n^2
b= 2 * m * n
c= m ^2 +n^2
Below is the implementation of efficient solution in C++ and Python:
- Finding all Pythagorean till the given limit in Python
- Finding all Pythagorean till the given limit in C++
Drive into Python Programming Examples and explore more instances related to python concepts so that you can become proficient in generating programs in Python Programming Language.
1)Finding all Pythagorean till the given limit in Python
Approach:
- Scan the upper limit or give static input and save the variable.
- Calculate the Pythagorean triplets using the formula with a while loop and for loop.
- If the c value exceeds the upper limit, or if a number equals 0, break from the loop.
- Print down all Pythagorean triplets’ three numbers.
- Exit of program.
Below is the implementation:
# enter the upper limit till you find pythagorean triplets upper_limit = 63 n3 = 0 a = 2 print("printing the pythagorean triplets till the upper limit", upper_limit, ":") while(n3 < upper_limit): for b in range(1, a+1): n1 = a*a-b*b n2 = 2*a*b n3 = a*a+b*b if(n3 > upper_limit): break if(n1 == 0 or n2 == 0 or n3 == 0): break print(n1, n2, n3) a = a+1
Output:
printing the Pythagorean triplets till the upper limit 63 : 3 4 5 8 6 10 5 12 13 15 8 17 12 16 20 7 24 25 24 10 26 21 20 29 16 30 34 9 40 41 35 12 37 32 24 40 27 36 45 20 48 52 11 60 61
Explanation:
The upper limit / input should be entered by a user as static, and stored in a variable.
The value of Pythagorean triplets using the formula is used during and for loops.
The loop breaks out if the value of a side is greater than the upper boundary, or if one side is 0.
The triplets will then be printed.
2)Finding all Pythagorean till the given limit in C++
Approach:
- Scan the upper limit using cin or give static input and save the variable.
- Calculate the Pythagorean triplets using the formula with a while loop and for loop.
- If the c value exceeds the upper limit, or if a number equals 0, break from the loop.
- Print down all Pythagorean triplets’ three numbers.
- Exit of program.
Below is the implementation:
#include <bits/stdc++.h> using namespace std; int main() { // enter the upper limit till you find pythagorean // triplets int upper_limit = 175; int n3 = 0; int a = 2; cout << "printing the pythagorean triplets till the " "upper limit" << upper_limit << ":" << endl; while (n3 < upper_limit) { for (int b = 1; b <= a; b++) { int n1 = a * a - b * b; int n2 = 2 * a * b; n3 = a * a + b * b; if (n3 > upper_limit) break; if (n1 == 0 or n2 == 0 or n3 == 0) break; cout << n1 << " " << n2 << " " << n3 << endl; } a = a + 1; } return 0; }
Output:
printing the Pythagorean triplets till the upper limit175: 3 4 5 8 6 10 5 12 13 15 8 17 12 16 20 7 24 25 24 10 26 21 20 29 16 30 34 9 40 41 35 12 37 32 24 40 27 36 45 20 48 52 11 60 61 48 14 50 45 28 53 40 42 58 33 56 65 24 70 74 13 84 85 63 16 65 60 32 68 55 48 73 48 64 80 39 80 89 28 96 100 15 112 113 80 18 82 77 36 85 72 54 90 65 72 97 56 90 106 45 108 117 32 126 130 17 144 145 99 20 101 96 40 104 91 60 109 84 80 116 75 100 125 64 120 136 51 140 149 36 160 164
Related Programs: