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,
So the idea is to run a loop from 1 to 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++
// 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; } |
Java
// 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.. |
Python 3
# 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 |
C#
// 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 |
PHP
<?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 ?> |
Javascript
<script> // Javascript program to count number of Co-prime pairs // from 1 to N with product equals to N // Recursive function to // return gcd of a and b function __gcd(a, 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 function countCoprimePairs(n) { var count = 0; document.write( "The co- prime pairs are: " + "<br>" ); // find all the co- prime pairs // Traverse from 2 to sqrt(N) and check // if i, N/i are coprimes for ( var 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, parseInt(n / i)) == 1) { // Display the co- prime pairs document.write( "(" + i + ", " + parseInt(n / i) + ")<br>" ); count++; } } } document.write( "<br>Number of coprime pairs : " + count); } // Driver code var N = 120; countCoprimePairs(N); </script> |
The co- prime pairs are: (3, 40) (5, 24) (8, 15) Number of coprime pairs : 3
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!