Open In App

Number of distinct integers obtained by lcm(X, N)/X

Improve
Improve
Like Article
Like
Save
Share
Report

Given a number N, find the number of distinct integers obtained by LCM(X, N)/X where X can be any positive number. 

Examples:  

Input: N = 2  
Output: 2
if X is 1, then lcm(1, 2)/1 is 2/1=2. 
if X is 2, then lcm(2, 2)/2 is 2/2=1. 
For any X greater than 2 we cannot 
obtain a distinct integer.
  
Input: N = 3
Output: 2  

It is known that LCM(x, y) = x*y/GCD(x, y).
Therefore,  

lcm(X, N) = X*N/gcd(X, N)
or, lcm(X, N)/X = N/gcd(X, N)

So only the distinct factors of N      can be the distinct integers possible. Hence, count the number of distinct factors of N including 1 and N itself, which is the required answer. 

Below is the implementation of the above approach:  

C++

// C++ program to find distinct integers
// obtained by lcm(x, num)/x
#include <cmath>
#include <iostream>
 
using namespace std;
 
// Function to count the number of distinct
// integers obtained by lcm(x, num)/x
int numberOfDistinct(int n)
{
    int ans = 0;
 
    // iterate to count the number of factors
    for (int i = 1; i <= sqrt(n); i++) {
        if (n % i == 0) {
            ans++;
            if ((n / i) != i)
                ans++;
        }
    }
 
    return ans;
}
 
// Driver Code
int main()
{
    int n = 3;
 
    cout << numberOfDistinct(n);
 
    return 0;
}

                    

Java

// Java  program to find distinct integers
// obtained by lcm(x, num)/x
 
import java.io.*;
 
class GFG {
     
// Function to count the number of distinct
// integers obtained by lcm(x, num)/x
static int numberOfDistinct(int n)
{
    int ans = 0;
 
    // iterate to count the number of factors
    for (int i = 1; i <= Math.sqrt(n); i++) {
        if (n % i == 0) {
            ans++;
            if ((n / i) != i)
                ans++;
        }
    }
 
    return ans;
}
 
// Driver Code
    public static void main (String[] args) {
        int n = 3;
 
        System.out.println (numberOfDistinct(n));
 
 
    }
}

                    

Python3

# Python 3 program to find distinct integers
# obtained by lcm(x, num)/x
 
import math
 
# Function to count the number of distinct
# integers obtained by lcm(x, num)/x
def numberOfDistinct(n):
    ans = 0
 
    # iterate to count the number of factors
    for i in range( 1, int(math.sqrt(n))+1):
        if (n % i == 0) :
            ans += 1
            if ((n // i) != i):
                ans += 1
    return ans
 
# Driver Code
if __name__ == "__main__":
    n = 3
 
    print(numberOfDistinct(n))
 
# This code is contributed by
# ChitraNayal

                    

C#

// C# program to find distinct integers
// obtained by lcm(x, num)/x
using System;
 
class GFG
{
     
// Function to count the number
// of distinct integers obtained
// by lcm(x, num)/x
static int numberOfDistinct(int n)
{
    int ans = 0;
 
    // iterate to count the number
    // of factors
    for (int i = 1; i <= Math.Sqrt(n); i++)
    {
        if (n % i == 0)
        {
            ans++;
            if ((n / i) != i)
                ans++;
        }
    }
 
    return ans;
}
 
// Driver Code
static public void Main ()
{
    int n = 3;
    Console.WriteLine(numberOfDistinct(n));
}
}
 
// This code is contributed by ajit

                    

PHP

<?php
// PHP program to find distinct
// integers obtained by lcm(x, num)/x
 
// Function to count the number
// of distinct integers obtained
// by lcm(x, num)/x
function numberOfDistinct($n)
{
    $ans = 0;
 
    // iterate to count the
    // number of factors
    for ($i = 1; $i <= sqrt($n); $i++)
    {
        if ($n % $i == 0)
        {
            $ans++;
            if (($n / $i) != $i)
                $ans++;
        }
    }
 
    return $ans;
}
 
// Driver Code
$n = 3;
echo numberOfDistinct($n);
 
// This code is contributed by ajit
?>

                    

Javascript

<script>
// javascript  program to find distinct integers
// obtained by lcm(x, num)/x    
// Function to count the number of distinct
    // integers obtained by lcm(x, num)/x
    function numberOfDistinct(n) {
        var ans = 0;
 
        // iterate to count the number of factors
        for (i = 1; i <= Math.sqrt(n); i++) {
            if (n % i == 0) {
                ans++;
                if ((n / i) != i)
                    ans++;
            }
        }
 
        return ans;
    }
 
    // Driver Code
     
        var n = 3;
 
        document.write(numberOfDistinct(n));
 
 
// This code contributed by umadevi9616
</script>

                    

Output
2

Time Complexity: O(sqrt(n)), since there runs a loop for sqrt(n) times.
Auxiliary Space: O(1), since no extra space has been taken.



Last Updated : 25 Aug, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads