# Geeksforgeeks Solution For " GCD of Array "

GeeksforGeeks Solution For Hard Domain .Below You Can Find The Solution Of  School Basic ,Easy ,Medium . Or Hackerrank Solution You Can Also Direct Submit Your Solution to Geeksforgeeks Same Problem .You Need to login then you can submit you answers

Problem :- GCD of Array

Solution :-

Method 1:-

#include<bits/stdc++.h>
#define LL long long int
#define mod 1000000007
using namespace std;
LL gcd(LL a, LL b)
{
if (a == 0) return b;
if (b == 0) return a;
if (a < 0) return gcd(-1 * a, b);
if (b < 0) return gcd(a, -1 * b);
if (a > b) return gcd(b, a);
return gcd(b%a, a);
}

LL arr[1000005];

int main()
{
LL t,n,i,lcm_new;
cin>>t;
while(t--)
{
cin>>n;
for(i=0;i<n;i++)
cin>>arr[i];
LL hcf=arr[0];
for(i=1;i<n;i++)
{
hcf=gcd(hcf,arr[i]);
}
cout<<hcf<<endl;
}
}

Method 2:-

#include<iostream>
using namespace std;
int GCD_of_Array(int [],int ) ;
int findGCD(int ,int ) ;
int main()
{
int t,arr[20],i,no ;
cin>>t ;
while(t--)
{
cin>>no ;
for(i=0;i<no;i++)
cin>>arr[i] ;

no=GCD_of_Array(arr,no) ;
cout<<no<<endl ;

}
return 0;
}

int GCD_of_Array(int arr[],int no)
{
int i,n ;
n=arr[0] ;
for(i=1;i<no;i++)
{
n=n>arr[i]?findGCD(n,arr[i]):findGCD(arr[i],n) ;
}
return n ;
}

int findGCD(int no1,int no2)
{
int rem ;
rem=no2%no1 ;
if(rem==0)
return no1 ;
else
return findGCD(rem,no1) ;
}

Output:-