 Open in App
Not now

# Find pair with maximum GCD for integers in range 2 to N

• Last Updated : 25 Mar, 2022

Given a number N, the task is to find a pair of integers in the range [2, N] with maximum GCD.
Examples:

Input: N = 10
Output:
Explanation:
Maximum possible GCD between all possible pairs is 5 which occurs for the pair (10, 5).
Input: N = 13
Output:
Explanation:
Maximum possible GCD between all possible pairs is 6 which occurs for the pair (12, 6).

Approach:
Follow the steps below to solve the problem:

• If N is even, return the pair {N, N / 2}

Illustration:
If N = 10, Maximum possible GCD for any pair is 5( for the pair {5, 10}).
If N = 20, Maximum possible GCD for any pair is 10( for the pair {20, 10}).

• If N is odd, then return the pair{N – 1, (N – 1) / 2}.

Illustration:
If N = 11, Maximum possible GCD for any pair is 5( for the pair {5, 10}).
If N = 21, Maximum possible GCD for any pair is 10( for the pair {20, 10}).

Below is the implementation of the above approach:

## C++

 `// C++ Program to find a pair of``// integers less than or equal``// to N such that their GCD``// is maximum``#include ``using` `namespace` `std;` `// Function to find the required``// pair whose GCD is maximum``void` `solve(``int` `N)``{``    ``// If N is even``    ``if` `(N % 2 == 0) {` `        ``cout << N / 2 << ``" "``             ``<< N << endl;``    ``}``    ``// If N is odd``    ``else` `{``        ``cout << (N - 1) / 2 << ``" "``             ``<< (N - 1) << endl;``    ``}``}` `// Driver Code``int` `main()``{``    ``int` `N = 10;``    ``solve(N);``    ``return` `0;``}`

## Java

 `// Java program to find a pair of``// integers less than or equal``// to N such that their GCD``// is maximum` `class` `GFG{` `// Function to find the required``// pair whose GCD is maximum``static` `void` `solve(``int` `N)``{``    ` `    ``// If N is even``    ``if` `(N % ``2` `== ``0``)``    ``{``        ``System.out.print(N / ``2` `+ ``" "` `+``                         ``N + ``"\n"``);``    ``}``    ` `    ``// If N is odd``    ``else``    ``{``        ``System.out.print((N - ``1``) / ``2` `+ ``" "` `+``                         ``(N - ``1``) + ``"\n"``);``    ``}``}` `// Driver Code``public` `static` `void` `main(String[] args)``{``    ``int` `N = ``10``;``    ` `    ``solve(N);``}``}` `// This code is contributed by Amit Katiyar`

## Python3

 `# Python3 Program to find a pair ``# of integers less than or equal``# to N such that their GCD``# is maximum` `# Function to find the required``# pair whose GCD is maximum``def` `solve(N):``    ` `    ``# If N is even``    ``if` `(N ``%` `2` `=``=` `0``):``        ``print``(N ``/``/` `2``, N)``        ` `    ``# If N is odd``    ``else` `:``        ``print``((N ``-` `1``) ``/``/` `2``, (N ``-` `1``))``    ` `# Driver Code``N ``=` `10``solve(N)` `# This code is contributed by divyamohan123`

## C#

 `// C# program to find a pair of``// integers less than or equal``// to N such that their GCD``// is maximum``using` `System;``class` `GFG{` `// Function to find the required``// pair whose GCD is maximum``static` `void` `solve(``int` `N)``{``    ` `    ``// If N is even``    ``if` `(N % 2 == 0)``    ``{``        ``Console.Write(N / 2 + ``" "` `+``                      ``N + ``"\n"``);``    ``}``    ` `    ``// If N is odd``    ``else``    ``{``        ``Console.Write((N - 1) / 2 + ``" "` `+``                      ``(N - 1) + ``"\n"``);``    ``}``}` `// Driver Code``public` `static` `void` `Main(String[] args)``{``    ``int` `N = 10;``    ` `    ``solve(N);``}``}` `// This code is contributed by shivanisinghss2110`

## Javascript

 ``

Output:

`5 10`

Time Complexity: O(1)
Auxiliary Space: O(1)

My Personal Notes arrow_drop_up