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:
- 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.
- 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)