Number of Co-prime pairs from 1 to N with product equals to N

Given a number N. The task is to find the number of co-prime pairs (a, b) from 1 to N such that their product(a*b) is equal to N.

Note: A pair(a, b) is said to be co-prime if gcd(a, b) = 1.

Examples:

Input: N = 120
Output: No. of co-prime pairs = 3
(3, 40)
(5, 24)
(8, 15) 

Input: N= 250
Output: No. of co-prime pairs = 3
(2, 125) 

Approach: Given that the elements in the pair should be co-prime to each other. Let a co prime pair be (a, b),
Given, a * b = N.

Therefore,
a, b <= &\sqrt(n)$

So the idea is to run a loop from 1 to &\sqrt(N)$ and check whether i and (N/i) are coprime to each other or not and whether, i*(N/i) = N. If yes, then count such pairs.

Below is the implementation of the above approach:

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program to count number of Co-prime pairs
// from 1 to N with product equals to N
#include <bits/stdc++.h>
using namespace std;
  
// Function to count number of Co-prime pairs
// from 1 to N with product equals to N
void countCoprimePairs(int n)
{
    int count = 0;
  
    cout << "The co- prime pairs are: " << endl;
  
    // find all the co- prime pairs
    // Traverse from 2 to sqrt(N) and check
    // if i, N/i are coprimes
    for (int i = 2; i <= sqrt(n); i++) {
  
        // check if N is divisible by i,
        // so that the other term in pair i.e. N/i
        // is integral
        if (n % i == 0) {
  
            // Check if i and N/i are coprime
            if (__gcd(i, (n / i)) == 1) {
  
                // Display the co- prime pairs
                cout << "(" << i << ", " << (n / i) << ")\n";
                count++;
            }
        }
    }
  
    cout << "\nNumber of coprime pairs : " << count;
}
  
// Driver code
int main()
{
    int N = 120;
  
    countCoprimePairs(N);
  
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to count number of Co-prime pairs
// from 1 to N with product equals to N
import java.io.*;
  
public class GFG {
  // Recursive function to return gcd of a and b 
    static int __gcd(int a, int b) 
    
        // Everything divides 0  
        if (a == 0
          return b; 
        if (b == 0
          return a; 
         
        // base case 
        if (a == b) 
            return a; 
         
        // a is greater 
        if (a > b) 
            return __gcd(a-b, b); 
        return __gcd(a, b-a); 
    
  
// Function to count number of Co-prime pairs
// from 1 to N with product equals to N
static void countCoprimePairs(int n)
{
    int count = 0;
  
    System.out.println( "The co- prime pairs are: ");
  
    // find all the co- prime pairs
    // Traverse from 2 to sqrt(N) and check
    // if i, N/i are coprimes
    for (int i = 2; i <= Math.sqrt(n); i++) {
  
        // check if N is divisible by i,
        // so that the other term in pair i.e. N/i
        // is integral
        if (n % i == 0) {
  
            // Check if i and N/i are coprime
            if (__gcd(i, (n / i)) == 1) {
  
                // Display the co- prime pairs
                System.out.print( "(" +i + ", " + (n / i) + ")\n");
                count++;
            }
        }
    }
  
    System.out.println("\nNumber of coprime pairs : " + count);
}
  
// Driver code
    public static void main (String[] args) {
            int N = 120;
  
    countCoprimePairs(N);
    }
}
  
// This code is contributed by shs..

chevron_right


Python 3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python program to count number 
# of Co-prime pairs from 1 to N 
# with product equals to N 
  
# import everything from math lib
from math import *
  
# Function to count number of 
# Co-prime pairs from 1 to N
# with product equals to N 
def countCoprimePairs(n) :
  
    count = 0
  
    print("The co-prime pairs are: ")
  
    # find all the co- prime pairs 
    # Traverse from 2 to sqrt(N) and 
    # check if i, N//i are coprimes 
    for i in range(2, int(sqrt(n)) + 1) :
  
        # check if N is divisible by i, 
        # so that the other term in pair 
        # i.e. N/i is integral 
        if n % i == 0 :
  
            # Check if i and N/i are coprime 
            if gcd(i, n // i) == 1 :
  
                # Display the co- prime pairs 
                print("(", i,",", (n // i),")")
                count += 1
  
    print("Number of coprime pairs : ", count)
                  
# Driver code     
if __name__ == "__main__" :
  
    N = 120
  
    countCoprimePairs(N)
  
# This code is contributed by ANKITRAI1

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# program to count number 
// of Co-prime pairs from 1 to N 
// with product equals to N
using System;
  
class GFG
{
// Recursive function to
// return gcd of a and b 
static int __gcd(int a, int b) 
    // Everything divides 0 
    if (a == 0) 
    return b; 
    if (b == 0) 
    return a; 
      
    // base case 
    if (a == b) 
        return a; 
      
    // a is greater 
    if (a > b) 
        return __gcd(a - b, b); 
    return __gcd(a, b - a); 
  
// Function to count number of 
// Co-prime pairs from 1 to N 
// with product equals to N
static void countCoprimePairs(int n)
{
int count = 0;
  
Console.WriteLine("The co- prime pairs are: ");
  
// find all the co- prime pairs
// Traverse from 2 to sqrt(N) and 
// check if i, N/i are coprimes
for (int i = 2; i <= Math.Sqrt(n); i++) 
{
  
    // check if N is divisible by i,
    // so that the other term in pair 
    // i.e. N/i is integral
    if (n % i == 0) 
    {
  
        // Check if i and N/i are coprime
        if (__gcd(i, (n / i)) == 1) 
        {
  
            // Display the co- prime pairs
            Console.WriteLine( "(" + i + ", "
                              (n / i) + ")\n");
            count++;
        }
    }
}
  
Console.WriteLine("\nNumber of coprime"
                    " pairs : " + count);
}
  
// Driver code
public static void Main ()
{
    int N = 120;
  
    countCoprimePairs(N);
}
}
  
// This code is contributed by Shashank

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// PHP program to count number of
// Co-prime pairs from 1 to N with 
// product equals to N
  
// Function to count number of 
// Co-prime pairs from 1 to N 
// with product equals to N
function gcd($a,$b)
{
    return $b ? gcd($b, $a % $b) : $a;
}
  
function countCoprimePairs($n)
{
    $count = 0;
  
    echo "The co-prime pairs are: " ."\n";
  
    // find all the co- prime pairs
    // Traverse from 2 to sqrt(N) and 
    // check if i, N/i are coprimes
    for ($i = 2; $i <= sqrt($n); $i++) 
    {
  
        // check if N is divisible by i,
        // so that the other term in pair 
        // i.e. N/i is integral
        if ($n % $i == 0) 
        {
  
            // Check if i and N/i are coprime
            if (gcd($i, ($n / $i)) == 1) 
            {
  
                // Display the co- prime pairs
                echo "(" .$i . ", " . ($n / $i) .")\n";
                $count++;
            }
        }
    }
  
    echo "\nNumber of coprime pairs : " . $count;
}
  
// Driver code
$N = 120;
  
countCoprimePairs($N);
  
// This code is contributed
// by ChitraNayal
?>

chevron_right


Output:

The co- prime pairs are: 
(3, 40)
(5, 24)
(8, 15)

Number of coprime pairs : 3


My Personal Notes arrow_drop_up

Second year Department of Information Technology Jadavpur University

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.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.



Improved By : AnkitRai01, Ita_c, Shashank12