Given an integer **N**. The task is to find a pair of co-prime divisors of N, greater than 1. If such divisors don’t exists then print ‘-1’.

**Examples:**

Input:N = 45Output:3 5Explanation:Since 3 and 5 are divisors of 45 and gcd( 3, 5 ) = 1 .

Hence, they satisfy the condition.

Input:N = 25Output:-1Explanation:No pair of divisors of 25 satisfy the condition such

that their gcd is 1.

**Approach: **

- Iterate from x = 2 to sqrt(N), to find all divisors of N
- For any value x, check if it divides N
- If it divides, then keep dividing N by x as long as it is divisible.
- Now, check if N > 1, then the pair of divisors (x, N) will have

gcd(x, N) == 1, since all the factors of ‘x’ has been eliminated from N. - Similarly, check for all values of x.

Below is the implementation of the above approach:

## C++

`// C++ program to find two coprime` `// divisors of a given number` `// such that both are greater` `// than 1` `#include <bits/stdc++.h>` `using` `namespace` `std;` `// Function which finds the` `// required pair of divisors` `// of N` `void` `findCoprimePair(` `int` `N)` `{` ` ` `// We iterate upto sqrt(N)` ` ` `// as we can find all the` ` ` `// divisors of N in this` ` ` `// time` ` ` `for` `(` `int` `x = 2; x <= ` `sqrt` `(N); x++) {` ` ` `if` `(N % x == 0) {` ` ` `// If x is a divisor of N` ` ` `// keep dividing as long` ` ` `// as possible` ` ` `while` `(N % x == 0) {` ` ` `N /= x;` ` ` `}` ` ` `if` `(N > 1) {` ` ` `// We have found a` ` ` `// required pair` ` ` `cout << x << ` `" "` ` ` `<< N << endl;` ` ` `return` `;` ` ` `}` ` ` `}` ` ` `}` ` ` `// No such pair of divisors` ` ` `// of N was found, hence` ` ` `// print -1` ` ` `cout << -1 << endl;` `}` `// Driver Code` `int` `main()` `{` ` ` `// Sample example 1` ` ` `int` `N = 45;` ` ` `findCoprimePair(N);` ` ` `// Sample example 2` ` ` `N = 25;` ` ` `findCoprimePair(N);` ` ` `return` `0;` `}` |

*chevron_right*

*filter_none*

## Java

`// Java program to find two coprime ` `// divisors of a given number ` `// such that both are greater ` `// than 1 ` `import` `java.util.*; ` `class` `GFG{` ` ` `// Function which finds the ` `// required pair of divisors ` `// of N ` `public` `static` `void` `findCoprimePair(` `int` `N) ` `{ ` ` ` ` ` `// We iterate upto sqrt(N) ` ` ` `// as we can find all the ` ` ` `// divisors of N in this ` ` ` `// time ` ` ` `for` `(` `int` `x = ` `2` `; x <= Math.sqrt(N); x++)` ` ` `{ ` ` ` `if` `(N % x == ` `0` `)` ` ` `{` ` ` ` ` `// If x is a divisor of N ` ` ` `// keep dividing as long ` ` ` `// as possible ` ` ` `while` `(N % x == ` `0` `) ` ` ` `{ ` ` ` `N /= x; ` ` ` `} ` ` ` `if` `(N > ` `1` `) ` ` ` `{` ` ` ` ` `// We have found a ` ` ` `// required pair ` ` ` `System.out.println(x + ` `" "` `+ N);` ` ` `return` `; ` ` ` `} ` ` ` `} ` ` ` `} ` ` ` ` ` `// No such pair of divisors ` ` ` `// of N was found, hence ` ` ` `// print -1 ` ` ` `System.out.println(-` `1` `);` `} ` `// Driver code` `public` `static` `void` `main(String[] args)` `{` ` ` ` ` `// Sample example 1 ` ` ` `int` `N = ` `45` `; ` ` ` `findCoprimePair(N); ` ` ` ` ` `// Sample example 2 ` ` ` `N = ` `25` `; ` ` ` `findCoprimePair(N); ` `}` `}` `// This code is contributed by divyeshrabadiya07` |

*chevron_right*

*filter_none*

## Python3

`# Python3 program to find two coprime ` `# divisors of a given number such that` `# both are greater than 1 ` `import` `math` `# Function which finds the ` `# required pair of divisors ` `# of N ` `def` `findCoprimePair(N):` ` ` ` ` `# We iterate upto sqrt(N)` ` ` `# as we can find all the` ` ` `# divisors of N in this` ` ` `# time` ` ` `for` `x ` `in` `range` `(` `2` `, ` `int` `(math.sqrt(N)) ` `+` `1` `):` ` ` `if` `(N ` `%` `x ` `=` `=` `0` `):` ` ` ` ` `# If x is a divisor of N` ` ` `# keep dividing as long` ` ` `# as possible` ` ` `while` `(N ` `%` `x ` `=` `=` `0` `):` ` ` `N ` `/` `/` `=` `x` ` ` `if` `(N > ` `1` `):` ` ` `# We have found a` ` ` `# required pair` ` ` `print` `(x, N)` ` ` `return` `;` ` ` `# No such pair of divisors` ` ` `# of N was found, hence` ` ` `# print -1` ` ` `print` `(` `"-1"` `) ` `# Driver Code` `# Sample example 1` `N ` `=` `45` `findCoprimePair(N)` `# Sample example 2` `N ` `=` `25` `findCoprimePair(N)` `# This code is contributed by Vishal Maurya.` |

*chevron_right*

*filter_none*

## C#

`// C# program to find two coprime ` `// divisors of a given number ` `// such that both are greater ` `// than 1 ` `using` `System;` `class` `GFG{` ` ` `// Function which finds the ` `// required pair of divisors ` `// of N ` `public` `static` `void` `findCoprimePair(` `int` `N) ` `{ ` ` ` `// We iterate upto sqrt(N) ` ` ` `// as we can find all the ` ` ` `// divisors of N in this ` ` ` `// time ` ` ` `for` `(` `int` `x = 2;` ` ` `x <= Math.Sqrt(N); x++)` ` ` `{ ` ` ` `if` `(N % x == 0)` ` ` `{` ` ` `// If x is a divisor of N ` ` ` `// keep dividing as long ` ` ` `// as possible ` ` ` `while` `(N % x == 0) ` ` ` `{ ` ` ` `N /= x; ` ` ` `} ` ` ` `if` `(N > 1) ` ` ` `{` ` ` `// We have found a ` ` ` `// required pair ` ` ` `Console.WriteLine(x + ` ` ` `" "` `+ N);` ` ` `return` `; ` ` ` `} ` ` ` `} ` ` ` `} ` ` ` `// No such pair of divisors ` ` ` `// of N was found, hence ` ` ` `// print -1 ` ` ` `Console.WriteLine(-1);` `} ` `// Driver code` `public` `static` `void` `Main(String[] args)` `{ ` ` ` `// Sample example 1 ` ` ` `int` `N = 45; ` ` ` `findCoprimePair(N); ` ` ` `// Sample example 2 ` ` ` `N = 25; ` ` ` `findCoprimePair(N); ` `}` `}` `// This code is contributed by Chitranayal` |

*chevron_right*

*filter_none*

**Output:**

3 5 -1

**Time Complexity** : O(**sqrt(N)**)

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.