Open In App

Minimum and Maximum element of an array which is divisible by a given number k

Last Updated : 07 Sep, 2022
Comments
Improve
Suggest changes
Like Article
Like
Report

Given an array, the task is to find the minimum and maximum elements in the array which are divisible by a given number k.

Examples: 

Input: arr[] = {12, 1235, 45, 67, 1}, k=5
Output: Minimum = 45, Maximum = 1235

Input: arr[] = {10, 1230, 45, 67, 1}, k=10
Output: Minimum = 10, Maximum = 1230

Approach:  

  1. Take a min variable that stores the minimum element and initialize it with INT_MAX and compare it with every element of the array and update the next minimum element which is divisible by k.
  2. Take a max variable that stores the maximum element and initialize it with INT_MIN and compare it with every element of the array and update the next maximum element which is divisible by k.

Below is the implementation of the above approach: 

C++
// C++ implementation of the above approach
#include <bits/stdc++.h>
using namespace std;

// Function to find the minimum element
int getMin(int arr[], int n, int k)
{
    int res = INT_MAX;
    for (int i = 0; i < n; i++) {
        if (arr[i] % k == 0)
            res = min(res, arr[i]);
    }
    return res;
}

// Function to find the maximum element
int getMax(int arr[], int n, int k)
{
    int res = INT_MIN;
    for (int i = 1; i < n; i++) {
        if (arr[i] % k == 0)
            res = max(res, arr[i]);
    }
    return res;
}

// Driver code
int main()
{
    int arr[] = { 10, 1230, 45, 67, 1 };
    int k = 10;
    int n = sizeof(arr) / sizeof(arr[0]);
    cout << "Minimum element of array which is divisible by k: "
         << getMin(arr, n, k) << "\n";
    cout << "Maximum element of array which is divisible by k: "
         << getMax(arr, n, k);

    return 0;
}
C
// C implementation of the above approach
#include <stdio.h>
#include <limits.h>

int max(int a, int b)
{
  int max = a;
  if(max < b)
    max = b;
  return max;
}

int min(int a,int b)
{
  int min = a;
  if(min > b)
    min = b;
  return min;
}

// Function to find the minimum element
int getMin(int arr[], int n, int k)
{
    int res = INT_MAX;
    for (int i = 0; i < n; i++) {
        if (arr[i] % k == 0)
            res = min(res, arr[i]);
    }
    return res;
}

// Function to find the maximum element
int getMax(int arr[], int n, int k)
{
    int res = INT_MIN;
    for (int i = 1; i < n; i++) {
        if (arr[i] % k == 0)
            res = max(res, arr[i]);
    }
    return res;
}

// Driver code
int main()
{
    int arr[] = { 10, 1230, 45, 67, 1 };
    int k = 10;
    int n = sizeof(arr) / sizeof(arr[0]);
    printf("Minimum element of array which is divisible by k: %d\n",getMin(arr, n, k));
    printf("Maximum element of array which is divisible by k: %d\n",getMax(arr, n, k));

    return 0;
}

// This code is contributed by kothavvsaakash.
Java
//Java implementation of the above approach 

class GFG {

// Function to find the minimum element 
    static int getMin(int arr[], int n, int k) {
        int res = Integer.MAX_VALUE;
        for (int i = 0; i < n; i++) {
            if (arr[i] % k == 0) {
                res = Math.min(res, arr[i]);
            }
        }
        return res;
    }

// Function to find the maximum element 
    static int getMax(int arr[], int n, int k) {
        int res = Integer.MIN_VALUE;
        for (int i = 1; i < n; i++) {
            if (arr[i] % k == 0) {
                res = Math.max(res, arr[i]);
            }
        }
        return res;
    }

// Driver code 
    public static void main(String[] args) {
        int arr[] = {10, 1230, 45, 67, 1};
        int k = 10;
        int n = arr.length;
        System.out.println("Minimum element of array which is divisible by k: "
                + getMin(arr, n, k));
        System.out.println("Maximum element of array which is divisible by k: "
                + getMax(arr, n, k));
    }
}
//This code contribute by Shikha Singh
Python 3
# Python 3 implementation of the 
# above approach
import sys

# Function to find the minimum element
def getMin(arr, n, k):

    res = sys.maxsize
    for i in range(n):
        if (arr[i] % k == 0):
            res = min(res, arr[i])
    return res

# Function to find the maximum element
def getMax(arr, n, k):

    res = 0
    for i in range(1, n):
        if (arr[i] % k == 0):
            res = max(res, arr[i])
    return res

# Driver code
if __name__ == "__main__":
    
    arr = [ 10, 1230, 45, 67, 1 ]
    k = 10
    n = len(arr)
    print("Minimum element of array which", 
          "is divisible by k: ", getMin(arr, n, k))
    print( "Maximum element of array which", 
           "is divisible by k: ", getMax(arr, n, k))

# This code is contributed 
# by ChitraNayal
C#
// C# implementation of the above approach 
using System;

class GFG
{
// Function to find the minimum element 
static int getMin(int []arr, int n, int k) 
{
    int res = int.MaxValue;
    for (int i = 0; i < n; i++) 
    {
        if (arr[i] % k == 0)
        {
            res = Math.Min(res, arr[i]);
        }
    }
    return res;
}

// Function to find the maximum element 
static int getMax(int []arr, int n, int k) 
{
    int res = int.MinValue;
    for (int i = 1; i < n; i++)
    {
        if (arr[i] % k == 0) 
        {
            res = Math.Max(res, arr[i]);
        }
    }
    return res;
}

// Driver code 
static public void Main ()
{
    int []arr = {10, 1230, 45, 67, 1};
    int k = 10;
    int n = arr.Length;
    Console.WriteLine("Minimum element of array " + 
                      "which is divisible by k: " + 
                                getMin(arr, n, k));
    Console.WriteLine("Maximum element of array " +
                      "which is divisible by k: " + 
                                getMax(arr, n, k));
}
}

// This code is contributes by ajit
PHP
<?php
// PHP implementation of the above approach 

// Function to find the minimum element 
function getMin($arr, $n, $k) 
{ 
    $res = PHP_INT_MAX; 
    for ($i = 0; $i < $n; $i++)
    { 
        if ($arr[$i] % $k == 0) 
            $res = min($res, $arr[$i]); 
    } 
    return $res; 
} 

// Function to find the maximum element 
function getMax($arr, $n, $k) 
{ 
    $res = PHP_INT_MIN; 
    for ($i = 1; $i < $n; $i++) 
    { 
        if ($arr[$i] % $k == 0) 
            $res = max($res, $arr[$i]); 
    } 
    return $res; 
} 

// Driver code 
$arr = array( 10, 1230, 45, 67, 1 ); 
$k = 10; 
$n = sizeof($arr); 
echo "Minimum element of array which is " . 
     "divisible by k: ", getMin($arr, $n, $k) , "\n"; 
echo "Maximum element of array which is " . 
     "divisible by k: ", getMax($arr, $n, $k); 

// This code is contributed by akt_mit
?>
JavaScript
<script>
// Javascript implementation of the above approach

// Function to find the minimum element
function getMin(arr, n, k)
{
    let res = Number.MAX_VALUE;
    for (let i = 0; i < n; i++) {
        if (arr[i] % k == 0)
            res = Math.min(res, arr[i]);
    }
    return res;
}

// Function to find the maximum element
function getMax(arr, n, k)
{
    let res = Number.MIN_VALUE;
    for (let i = 1; i < n; i++) {
        if (arr[i] % k == 0)
            res = Math.max(res, arr[i]);
    }
    return res;
}

// Driver code
    let arr = [ 10, 1230, 45, 67, 1 ];
    let k = 10;
    let n = arr.length;
    document.write("Minimum element of array which is divisible by k: "
         + getMin(arr, n, k) + "<br>");
    document.write("Maximum element of array which is divisible by k: "
         + getMax(arr, n, k));

</script>

Output
Minimum element of array which is divisible by k: 10
Maximum element of array which is divisible by k: 1230

Complexity Analysis:

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

Next Article

Similar Reads