# Minimize Array length by repeatedly replacing co-prime pairs with 1

A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.

Given an array arr[] consisting of N elements, the task is to minimize the array length by replacing any two coprime array elements with 1.

Examples:

_Input: _arr[] = {2, 3, 5}

Output:_ 1_

Explanation:

Replace {2, 3} with 1 modifies the array to {1, 5}.

Replace {1, 5} with 1 modifies the array to {1}.

_Input: _arr[] = {6, 9, 15}

_Output: _3

Explanation:_ No coprime pairs exist in the array. Therefore, no reduction possible._

Naive Approach: The simplest approach is to iterate over the array and check for coprime pairs. If found replace it with 1 search for the next coprime pair and so on.

Time Complexity:_ O(N3  * log__N)_

Auxiliary Space:_ O(1)_

*Efficient Approach: *This approach is based on the fact:

1 is coprime with every number

The idea is to find if there is any co-prime pair present in the array or not. If found, then all the array elements can be reduced to 1 based on the above fact. Hence, if any co-prime pair is found, then, the required answer will be 1, else, the answer will be the initial size of the array.

Illustration:

For arr[] = {2, 4, 6, 8, 9}

Here, as there exists a coprime pair {2, 9}, replacing them by 1 modifies the array to {1, 4, 6, 8}.

Since 1 is coprime with every number, the array can be reduced further in following steps:

{1, 4, 6, 8} -> {1, 6, 8} -> {1, 8} -> {1}

Hence, the array can be reduced to size 1.

Below is the implementation of the above approach:

• C++

`// C++ Program for the above approach`

`#include <bits/stdc++.h>`

`**using**` `**namespace**` `std;`

`// Function to find the final array`

`// length by replacing coprime pair with 1`

`**bool**` `hasCoprimePair(vector<``**int**``>& arr,` `**int**` `n)`

`{`

`// Iterate over all pairs of element`

`**for**` `(``**int**` `i = 0; i < n - 1; i++) {`

`**for**` `(``**int**` `j = i + 1; j < n; j++) {`

`// Check if gcd is 1`

`**if**` `(__gcd(arr[i], arr[j]) == 1) {`

`**return**` `**true**``;`

`}`

`}`

`}`

`// If no coprime pair`

`// found return false`

`**return**` `**false**``;`

`}`

`// Driver code`

`**int**` `main()`

`{`

`**int**` `n = 3;`

`vector<``**int**``> arr = { 6, 9, 15 };`

`// Check if atleast one coprime`

`// pair exists in the array`

`**if**` `(hasCoprimePair(arr, n)) {`

`cout << 1 << endl;`

`}`

`// If no such pair exists`

`**else**` `{`

`cout << n << endl;`

`}`

`}`

Output:

``3``

_Time Complexity: _O(N2 * log N)

Auxiliary Space:_ O(1)_

Attention reader! Donâ€™t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

## Nearest prime number in the array of every array element

A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.

## Sum of prime numbers in range [L, R] from given Array for Q queries

A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.

## Count of subarrays consisting of only prime numbers

A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.

## Length of longest subarray having only K distinct Prime Numbers

A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.

## Rearrange an Array such that Sum of same-indexed subsets differ

A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.