C++ Program for Minimum product pair an array of positive Integers
Last Updated :
23 Jul, 2025
Given an array of positive integers. We are required to write a program to print the minimum product of any two numbers of the given array.
Examples:
Input : 11 8 5 7 5 100
Output : 25
Explanation : The minimum product of any
two numbers will be 5 * 5 = 25.
Input : 198 76 544 123 154 675
Output : 7448
Explanation : The minimum product of any
two numbers will be 76 * 123 = 7448.
Simple Approach : A simple approach will be to run two nested loops to generate all possible pair of elements and keep track of the minimum product.
Time Complexity: O( n * n)
Auxiliary Space: O( 1 )
Better Approach: An efficient approach will be to first sort the given array and print the product of first two numbers, sorting will take O(n log n). Answer will be then a[0] * a[1] .
C++
// C++ program to calculate minimum
// product of a pair
#include <bits/stdc++.h>
using namespace std;
// Function to calculate minimum product
// of pair
int printMinimumProduct(int arr[], int n)
{
//Sort the array
sort(arr,arr+n);
// Returning the product of first two numbers
return arr[0] * arr[1];
}
// Driver program to test above function
int main()
{
int a[] = { 11, 8 , 5 , 7 , 5 , 100 };
int n = sizeof(a) / sizeof(a[0]);
cout << printMinimumProduct(a,n);
return 0;
}
// This code is contributed by Pushpesh Raj
Time Complexity: O( n * log(n))
Auxiliary Space: O( 1 )
Best Approach: The idea is linearly traverse given array and keep track of minimum two elements. Finally return product of two minimum elements.
Below is the implementation of above approach.
C++
// C++ program to calculate minimum
// product of a pair
#include <bits/stdc++.h>
using namespace std;
// Function to calculate minimum product
// of pair
int printMinimumProduct(int arr[], int n)
{
// Initialize first and second
// minimums. It is assumed that the
// array has at least two elements.
int first_min = min(arr[0], arr[1]);
int second_min = max(arr[0], arr[1]);
// Traverse remaining array and keep
// track of two minimum elements (Note
// that the two minimum elements may
// be same if minimum element appears
// more than once)
// more than once)
for (int i=2; i<n; i++)
{
if (arr[i] < first_min)
{
second_min = first_min;
first_min = arr[i];
}
else if (arr[i] < second_min)
second_min = arr[i];
}
return first_min * second_min;
}
// Driver program to test above function
int main()
{
int a[] = { 11, 8 , 5 , 7 , 5 , 100 };
int n = sizeof(a) / sizeof(a[0]);
cout << printMinimumProduct(a,n);
return 0;
}
Time Complexity: O(n)
Auxiliary Space: O(1) Please refer complete article on Minimum product pair an array of positive Integers for more details!
Explore
C++ Basics
Core Concepts
OOP in C++
Standard Template Library(STL)
Practice & Problems