Open In App

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

Improve
Improve
Like Article
Like
Save
Share
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)


Last Updated : 07 Sep, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads