Menu Close

Find the Pythagorean triplet

Fazil the tutor of the skill training institute gave  an array of integers to one of highly attentive student of his class Rohan and asked him create a programming snippet to find the Pythagorean triplet that satisfies
a2 + b2 = c2.

Rohan is trying hard to impress his tutor Fazil but he is finding it difficult to complete the task.

Can you help Rohan in completing the task?

Input:
The first line contains T, denoting the number of testcases. Then follows description of testcases. 

Each case begins with a single positive integer N denoting the size of array. 

The second line contains the N space separated positive integers denoting the elements of array A.


Output:
For each testcase, print "Yes" it is Pythagorean Triplet and "No" if not.

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
int a[10000000];
int b[10000000];
extern int Triplet(int ar[],int n);
int main(){
  int t;
  scanf("%d",&t);
  while(t--){
    int n;
    scanf("%d",&n);
    for(int i=0;i<n;i++){
    scanf("%d",&a[i]);
    a[i]=a[i]*a[i];
    }
    Triplet(a,n);
  }
return 0;
}
int Triplet(int ar[],int n)
{
  int k=0,i,j,flag=0;
  for(i=0;i<n-1;i++){
  for( j =i+1;j<n;j++){
  b[k]=a[i]+a[j];
  k++;}
  }
  for(i=0;i<n;i++){
  int x=0;
  for(x=0;x<=k;x++){
  if(a[i]==b[x]){
  printf("Yes\n");
  flag=1;
  break;}
  }
  }
  if(flag==0){
  printf("No\n");}
}


INPUT_1:
3
5
85  64  132  189  157
6
87  35  6  10  4  12
7
96  110  247  94  15  9  265

OUTPUT:
Yes
No
Yes


INPUT_2:
4
4
25  3  9  13
8
104  129  451  153  103  185  181  341
6
161  124  139  240  112  289
5
117  55  16  33  130

OUTPUT:
No
Yes
Yes
No


ILLUSTRATION

Executed using gcc

Morae Q!