Skip to content
Related Articles

Related Articles

Improve Article
Pairs with GCD equal to one in the given range
  • Difficulty Level : Hard
  • Last Updated : 06 Apr, 2021

Given a range i.e. L and R, the task is to find if we can form pairs such that GCD of every pair is 1. Every number in the range L-R should be involved exactly in one pair.
Examples: 
 

Input: L = 1, R = 8
Output: Yes
{2, 7}, {4, 1}, {3, 8}, {6, 5}
All pairs have GCD as 1. 

Input: L = 2, R = 4
Output: No

 

Approach: Since every number in the range(L, R) must be included exactly once in every pair. Hence if L-R is an even number, then it is not possible. If L-R is an odd number, then print all the adjacent pairs since adjacent pairs will always have GCD as 1. 
Below is the implementation of the above approach: 
 

C++




// C++ program to print all pairs
#include <bits/stdc++.h>
using namespace std;
 
// Function to print all pairs
bool checkPairs(int l, int r)
{
    // check if even
    if ((l - r) % 2 == 0)
        return false;
 
    /* We can print all adjacent pairs
      for (int i = l; i < r; i += 2) {
          cout << "{" << i << ", " << i + 1 << "}, ";
      } */
      
    return true;
}
 
// Driver Code
int main()
{
    int l = 1, r = 8;
    if (checkPairs(l, r))
       cout << "Yes";
    else
       cout << "No";
    return 0;
}

Java




// Java program to print all pairs
class GFG
{
// Function to print all pairs
static boolean checkPairs(int l, int r)
{
    // check if even
    if ((l - r) % 2 == 0)
        return false;
 
    /* We can print all adjacent pairs
    for (int i = l; i < r; i += 2)
    {
        System.out.print("{"+i+", "+i + 1+"}, ");
    } */
     
    return true;
}
 
// Driver Code
public static void main(String[] args)
{
    int l = 1, r = 8;
    if (checkPairs(l, r))
    System.out.println("Yes");
    else
    System.out.println("No");
}
}
 
// This code is contributed by mits

Python 3




# Python 3 program to print all pairs
 
# Function to print all pairs
def checkPairs(l, r) :
 
    # check if even
    if (l - r) % 2 == 0 :
        return False
 
    """ we can print all adjacent pairs
    for i in range(l,r,2) :
        print("{",i,",",i + 1, "},")
    """
     
    return True
 
# Driver Code
if __name__ == "__main__" :
 
    l, r = 1, 8
 
    if checkPairs(l, r) :
        print("Yes")
    else :
        print("No")
            
# This code is contributed by ANKITRAI1

C#




// C# program to print all pairs
using System;
 
class GFG
{
// Function to print all pairs
static bool checkPairs(int l, int r)
{
    // check if even
    if ((l - r) % 2 == 0)
        return false;
 
    /* We can print all adjacent pairs
    for (int i = l; i < r; i += 2)
    {
        System.out.print("{"+i+", "+i + 1+"}, ");
    } */
     
    return true;
}
 
// Driver Code
static public void Main ()
{
    int l = 1, r = 8;
    if (checkPairs(l, r))
    Console.Write("Yes");
    else
    Console.Write("No");
}
}
 
// This code is contributed by Raj

PHP




<?php
// PHP program to print all pairs
 
// Function to print all pairs
function checkPairs($l, $r)
{
    // check if even
    if (($l - $r) % 2 == 0)
        return false;
 
    /* We can print all adjacent pairs
    for (int i = l; i < r; i += 2)
    {
        cout << "{" << i << ", " << i + 1 << "}, ";
    } */
     
    return true;
}
 
// Driver Code
$l = 1;
$r = 8;
if (checkPairs($l, $r))
    echo ("Yes");
else
    echo ("No");
     
// This code is contributed
// by Shivi_Aggarwal
?>

Javascript




<script>
 
// JavaScript program to print all pairs
 
    // Function to print all pairs
    function checkPairs(l , r) {
        // check if even
        if ((l - r) % 2 == 0)
            return false;
 
        /*
         We can print all adjacent pairs
         for (i = l; i < r; i += 2) {
         document.write("{"+i+", "+i + 1+"], "); }
         */
 
        return true;
    }
 
    // Driver Code
     
        var l = 1, r = 8;
        if (checkPairs(l, r))
            document.write("Yes");
        else
            document.write("No");
 
// This code is contributed by todaysgaurav
 
</script>
Output: 
Yes

 

Time Complexity: O(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.  Get hold of all the important mathematical concepts for competitive programming with the Essential Maths for CP Course at a student-friendly price.

In case you wish to attend live classes with industry experts, please refer Geeks Classes Live




My Personal Notes arrow_drop_up
Recommended Articles
Page :