 GFG App
Open App Browser
Continue

# C++ Program for Minimum product pair an array of positive Integers

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 * a .

## C++

 `// C++ program to calculate minimum` `// product of a pair` `#include ` `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 * arr;` `}`   `// Driver program to test above function` `int` `main()` `{` `    ``int` `a[] = { 11, 8 , 5 , 7 , 5 , 100 };` `    ``int` `n = ``sizeof``(a) / ``sizeof``(a);` `    ``cout << printMinimumProduct(a,n);` `    ``return` `0;` `}`   `// This code is contributed by Pushpesh Raj`

Output

`25`

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 ` `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, arr);` `    ``int` `second_min = max(arr, arr);`   `    ``// 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

Output

`25`

Time Complexity: O(n)
Auxiliary Space: O(1) Please refer complete article on Minimum product pair an array of positive Integers for more details!

My Personal Notes arrow_drop_up