Friday, July 5, 2024
HomeData ModellingData Structure & AlgorithmMinimum and Maximum element of an array which is divisible by...

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

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)

Feeling lost in the world of random DSA topics, wasting time without progress? It’s time for a change! Join our DSA course, where we’ll guide you on an exciting journey to master DSA efficiently and on schedule.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!

Dominic Rubhabha Wardslaus
Dominic Rubhabha Wardslaushttps://neveropen.dev
infosec,malicious & dos attacks generator, boot rom exploit philanthropist , wild hacker , game developer,
RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Most Popular

Recent Comments