# Find an array element such that all elements are divisible by it

Given an array of numbers, find the number among them such that all numbers are divisible by it. If not possible print -1.

Examples:

Input : arr = {25, 20, 5, 10, 100}
Output : 5
Explanation : 5 is an array element
which divides all numbers.

Input : arr = {9, 3, 6, 2, 15}
Output : -1
Explanation : No numbers are divisible
by any array element.

Method 1:(naive): A normal approach will be to take every element and check for division with all other elements. If all the numbers are divisible then return the number.

Implementation:

## C++

 // CPP program to find an array element that  // divides all numbers in the array using // naive approach #include using namespace std;   // function to find smallest num int findSmallest(int a[], int n) {     // traverse for all elements     for (int i = 0; i < n; i++) {                   int j;         for (j = 0; j < n; j++)              if (a[j] % a[i])                  break;           // stores the minimum if         // it divides all         if (j == n)             return a[i];     }       return -1; }   // driver code int main() {     int a[] = { 25, 20, 5, 10, 100 };     int n = sizeof(a) / sizeof(int);     cout << findSmallest(a, n);     return 0; }

## Java

 // Java program to find an array element // that divides all numbers in the array  // using naive approach import java.io.*;   class GFG {           // function to find smallest num     static int findSmallest(int a[], int n)     {         // traverse for all elements         for (int i = 0; i < n; i++)          {                           int j;             for (j = 0; j < n; j++)                  if (a[j] % a[i]>=1)                      break;                   // stores the minimum if             // it divides all             if (j == n)                 return a[i];         }               return -1;     }           // driver code     public static void main(String args[])     {         int a[] = { 25, 20, 5, 10, 100 };         int n = a.length;         System.out.println(findSmallest(a, n));     } }     // This code is contributed by Nikita Tiwari.

## Python3

 # Python 3 program to find an array # element that divides all numbers # in the array using naive approach   # Function to find smallest num def findSmallest(a, n) :           # Traverse for all elements     for i in range(0, n ) :                   for j in range(0, n) :                           if ((a[j] % a[i]) >= 1) :                 break          # Stores the minimum          # if it divides all         if (j == n - 1) :             return a[i]                       return -1    # Driver code a = [ 25, 20, 5, 10, 100 ] n = len(a) print(findSmallest(a, n))     # This code is contributed by Nikita Tiwari.

## C#

 // C# program to find an array element // that divides all numbers in the array  // using naive approach using System;   class GFG {           // function to find smallest num     static int findSmallest(int []a, int n)     {         // traverse for all elements         for (int i = 0; i < n; i++)          {                           int j;             for (j = 0; j < n; j++)                  if (a[j] % a[i] >= 1)                      break;                   // stores the minimum if             // it divides all             if (j == n)                 return a[i];         }               return -1;     }           // Driver code     public static void Main()     {         int []a = { 25, 20, 5, 10, 100 };         int n = a.Length;         Console.WriteLine(findSmallest(a, n));     } }     // This code is contributed by vt_m.

## PHP



## Javascript



Output
5

Time Complexity: O(n2)
Auxiliary Space: O(1)

Method 2 : (Efficient): An efficient approach is to find smallest of all numbers, and check if it divides all the other numbers, if yes then the smallest number will be the required number.

Implementation:

## C++

 // CPP Program to find the smallest number // that divides all numbers in an array #include using namespace std;   // function to find smallest num int findSmallest(int a[], int n) {      // Find the smallest element     int smallest = *min_element(a, a+n);           // Check if all array elements     // are divisible by smallest.     for (int i = 1; i < n; i++)              if (a[i] % smallest)              return -1;       return smallest; }   // Driver code int main() {     int a[] = { 25, 20, 5, 10, 100 };     int n = sizeof(a) / sizeof(int);         cout << findSmallest(a, n);         return 0; }

## Java

 // Java Program to find the  // smallest number that divides // all numbers in an array import java.io.*;   class GFG {       // function to find the smallest element     static int min_element(int a[])     {         int min = Integer.MAX_VALUE, i;         for (i = 0; i < a.length; i++)          {             if (a[i] < min)                 min = a[i];         }                   return min;     }           // function to find smallest num     static int findSmallest(int a[], int n)      {         // Find the smallest element         int smallest = min_element(a);               // Check if all array elements         // are divisible by smallest.         for (int i = 1; i < n; i++)         if (a[i] % smallest >= 1)             return -1;               return smallest;     }           // Driver code     public static void main(String args[])     {         int a[] = {25, 20, 5, 10, 100};         int n = a.length;         System.out.println(findSmallest(a, n));     } }   // This code is contributed by Nikita Tiwari.

## Python3

 # Python3 Program to find the # smallest number that divides # all numbers in an array   # Function to find the smallest element def min_element(a) :           m = 10000000          for i in range(0, len(a)) :                   if (a[i] < m) :             m = a[i]           return m   # Function to find smallest num def findSmallest(a, n) :           # Find the smallest element     smallest = min_element(a)           # Check if all array elements     # are divisible by smallest.     for i in range(1, n) :                   if (a[i] % smallest >= 1) :             return -1      return smallest     # Driver code   a = [ 25, 20, 5, 10, 100 ] n = len(a) print(findSmallest(a, n))     # This code is contributed by Nikita Tiwari.

## C#

 // C# Program to find the  // smallest number that divides // all numbers in an array using System;   class GFG {       // function to find the smallest element     static int min_element(int []a)     {         int min = int.MaxValue;         int i;         for (i = 0; i < a.Length; i++)          {             if (a[i] < min)                 min = a[i];         }                   return min;     }           // function to find smallest num     static int findSmallest(int []a, int n)      {         // Find the smallest element         int smallest = min_element(a);               // Check if all array elements         // are divisible by smallest.         for (int i = 1; i < n; i++)         if (a[i] % smallest >= 1)             return -1;               return smallest;     }           // Driver code     public static void Main()     {         int []a = {25, 20, 5, 10, 100};         int n = a.Length;         Console.WriteLine(findSmallest(a, n));     } }   // This code is contributed by vt_m.

## PHP



## Javascript



Output
5

Time Complexity: O(n)
Auxiliary Space: O(1)

Previous
Next