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

• Difficulty Level : Medium
• Last Updated : 16 Dec, 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 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 ``#include ` `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

 ``

## Javascript

 ``
Output:
`2`

Time Complexity: O(sqrt(n))

My Personal Notes arrow_drop_up