# Co-prime pair with given sum minimum difference

Co-prime or mutually prime pair are those pair of numbers whose GCD is 1. Given a number n represent the number as the sum of a Co-prime pair ( A, B) such that A – B is minimum .

Examples :

```Input : 12
Output : 5 7
Possible co-prime pairs are (5, 7), (1, 11)
but difference between 5 and 7 is minimum

Input : 13
Output : 6 7
Possible co-prime pairs are (6, 7), (5, 8),
(4, 9), (3, 10), (2, 11) and (1, 12)
but difference between 6 and 7  is minimum

```

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

A simple solution is to iterate through all number from 1 to n-1. For every number x, check if n – x and x are co-primes. If yes, then update the result if difference between these two is less than minimum difference so far.

An efficient solution is based on the fact that the numbers with minimum difference should be close to n/2. We loop from n/2 to 1. Check every possible pair and when first possible Co-prime pair is found display it and stop the loop.

## C++

 `// CPP program to represent a number   ` `// as sum of a co-prime pair such that  ` `// difference between them is minimum ` `#include ` `using` `namespace` `std; ` ` `  `// function to check if pair ` `// is co-prime or not ` `bool` `coprime(``int` `a, ``int` `b) ` `{ ` `    ``return` `(__gcd(a, b) == 1); ` `} ` ` `  `// function to find and print  ` `// co-prime pair ` `void` `pairSum(``int` `n){ ` `     `  `    ``int` `mid = n / 2; ` ` `  `    ``for` `(``int` `i = mid; i >= 1; i--) { ` `        ``if` `(coprime(i, n - i) == 1) { ` `            ``cout << i << ``" "` `<< n - i; ` `            ``break``; ` `        ``} ` `    ``} ` `} ` ` `  `// driver code ` `int` `main() ` `{ ` `    ``int` `n = 11; ` `    ``pairSum(n); ` `    ``return` `0; ` `} `

## Java

 `// Java program to represent a  ` `// number as sum of a co-prime  ` `// pair such that difference  ` `// between them is minimum ` `class` `GFG  ` `{ ` `    ``static` `int` `__gcd(``int` `a, ``int` `b) ` `    ``{ ` `        ``return` `b == ``0` `? a :  ` `           ``__gcd(b, a % b); ` `    ``} ` `     `  `    ``// function to check if pair ` `    ``// is co-prime or not ` `    ``static` `boolean` `coprime(``int` `a, ``int` `b) ` `    ``{ ` `        ``return` `(__gcd(a, b) == ``1``); ` `    ``} ` `     `  `    ``// function to find and  ` `    ``// print co-prime pair ` `    ``static` `void` `pairSum(``int` `n) ` `    ``{ ` `        ``int` `mid = n / ``2``; ` `     `  `        ``for` `(``int` `i = mid; i >= ``1``; i--) ` `        ``{ ` `            ``if` `(coprime(i, n - i) == ``true``) ` `            ``{ ` `                ``System.out.print( i + ``" "` `+  ` `                                  ``(n - i)); ` `                ``break``; ` `            ``} ` `        ``} ` `    ``} ` `     `  `    ``// Driver Code ` `    ``public` `static` `void` `main(String args[])  ` `    ``{ ` `        ``int` `n = ``11``; ` `        ``pairSum(n); ` `         `  `    ``} ` `} ` ` `  `// This code is contributed by Sam007 `

## Python3

 `# Python3 program to represent  ` `# a number as sum of a co-prime  ` `# pair such that difference  ` `# between them is minimum ` `import` `math ` ` `  `# function to check if pair ` `# is co-prime or not ` `def` `coprime(a, b): ` `    ``return` `1` `if``(math.gcd(a, b) ``=``=` `1``) ``else` `0``; ` ` `  `# function to  ` `# find and print  ` `# co-prime pair ` `def` `pairSum(n): ` `    ``mid ``=` `int``(n ``/` `2``); ` `    ``i ``=` `mid; ` `    ``while``(i >``=` `1``): ` `        ``if` `(coprime(i, n ``-` `i) ``=``=` `1``): ` `            ``print``(i, n ``-` `i); ` `            ``break``; ` `        ``i ``=` `i ``-` `1``; ` ` `  `# Driver code ` `n ``=` `11``; ` `pairSum(n); ` ` `  `# This code is contributed ` `# by mits `

## C#

 `// C# program to represent a number  ` `// as sum of a co-prime pair such that  ` `// difference between them is minimum ` `using` `System; ` ` `  `class` `GFG { ` ` `  `    ``static` `int` `__gcd(``int` `a, ``int` `b) ` `    ``{ ` `        ``return` `b == 0 ? a : __gcd(b, a % b); ` `    ``} ` `     `  `    ``// function to check if pair ` `    ``// is co-prime or not ` `    ``static` `bool` `coprime(``int` `a, ``int` `b) ` `    ``{ ` `        ``return` `(__gcd(a, b) == 1); ` `    ``} ` `     `  `    ``// function to find and print  ` `    ``// co-prime pair ` `    ``static` `void` `pairSum(``int` `n) ` `    ``{ ` `        ``int` `mid = n / 2; ` `     `  `        ``for` `(``int` `i = mid; i >= 1; i--) ` `        ``{ ` `            ``if` `(coprime(i, n - i) == ``true``) ` `            ``{ ` `                ``Console.Write( i + ``" "`  `                               ``+ (n - i)); ` `                ``break``; ` `            ``} ` `        ``} ` `    ``} ` `     `  `    ``// Driver code ` `    ``public` `static` `void` `Main() ` `    ``{ ` `        ``int` `n = 11; ` `        ``pairSum(n); ` `    ``} ` `} ` ` `  `// This code is contributed by Sam007 `

## PHP

 `= 1; ``\$i``--)  ` `    ``{ ` `        ``if` `(coprime(``\$i``, ``\$n` `- ``\$i``) == 1) ` `        ``{ ` `            ``echo` `\$i` `. ``" "` `. (``\$n` `- ``\$i``); ` `            ``break``; ` `        ``} ` `    ``} ` `} ` ` `  `// Driver code ` `\$n` `= 11; ` `pairSum(``\$n``); ` ` `  `// This code is contributed ` `// by mits ` `?> `

Output :

```5 6
```

This article is contributed by Dibyendu Roy Chaudhuri. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.