Skip to content
Related Articles

Related Articles

Number of distinct integers obtained by lcm(X, N)/X
  • Difficulty Level : Medium
  • Last Updated : 05 May, 2021

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
// ontained by lcm(x, num)/x
#include <cmath>
#include <iostream>
 
using namespace std;
 
// Function to count the number of distinct
// integers ontained 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
// ontained by lcm(x, num)/x
 
import java.io.*;
 
class GFG {
     
// Function to count the number of distinct
// integers ontained 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));
 
 
    }
}

Python 3




# Python 3 program to find distinct integers
# ontained by lcm(x, num)/x
 
import math
 
# Function to count the number of distinct
# integers ontained 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
// ontained by lcm(x, num)/x
using System;
 
class GFG
{
     
// Function to count the number
// of distinct integers ontained
// 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 ontained by lcm(x, num)/x
 
// Function to count the number
// of distinct integers ontained
// 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
// ontained by lcm(x, num)/x    
// Function to count the number of distinct
    // integers ontained 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))
 

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 and Geeks Classes Live USA




My Personal Notes arrow_drop_up
Recommended Articles
Page :