# Pythagoras triplet

How to generate two no from a no

hi @kumarakash121005
for this ques
If m>n>0 are integers, then (m2-n2, 2mn, m2-n2) is a Pythagorean triple. This is easily seen with a bit of algebra. Thus, plugging in various (m,n) will give various triples.
Now, our goal is to find a triple of the form (m2-n2, 2mn, m2-n2) in which our input value is one of the catheti. Note that the catheti are m2-n2 and 2mn. Also, note that the second cathetus is always even. Thus, it makes sense to consider two cases:

• If a is even, then letâ€™s try to equate it with the second cathetus, 2mn, i.e., letâ€™s try to find an (m,n) pair such that 2mn = a. In this case, is even, so we can divide by 2. We have mn = a/2. Thus, all we have to do is to find a factorization of a/2 into mn such that m>n. You can try various factoring methods â€” even naÃ¯ve O(âˆša) time method will pass - but in this case , we donâ€™t really even need to do that, since the trivial (m,n) = (a/2,1) works!. This gives us the solution triple ( (a^2)/4 - 1, a, (a^2)/4 + 1 ). Note that (a^2)/4 is an integer since a is even.
• If a is odd, then we canâ€™t equate it with the second cathetus, so letâ€™s try instead m2-n2, i.e. we want to find an (m,n) such that m2-n2 = a. Node that m2-n2 = (m+n)(m-n), so all boils down again to factoring! Letâ€™s try our trivial factorization again: (m+n, m-n) = (a,1) What we get is a system of two linear equations: m+n=a and m-n=1 which has solution m=(a+1)/2 and n=(a-1)/2. Substituting back, this gives us the triple (a, (a^2 - 1)/2, (a^2 + 1)/2). Note that (a^2 + 1)/2 is an integer as a is odd.

refer this -->

``````#include <iostream>
using namespace std;
int main() {
long long int n;
cin>>n;
if (n == 1 || n == 2){
cout<<"-1"<<endl;
}

else if (n % 2 == 0) {
cout<<((n * n) / 4) - 1 << " " <<((n * n) / 4) + 1;
}

else if (n % 2 != 0) {
cout<<(n * n - 1) / 2 << " " << (n * n + 1) / 2;
}
}
``````