Dado un número N, encuentre el número de enteros distintos obtenidos por MCM (X, N)/X donde X puede ser cualquier número positivo.
Ejemplos :
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
Se sabe que LCM(x, y) = x*y/GCD(x, y) .
Por lo tanto,
lcm(X, N) = X*N/gcd(X, N) or, lcm(X, N)/X = N/gcd(X, N)
Entonces, solo los factores distintos de pueden ser los enteros distintos posibles. Por lo tanto, cuente el número de factores distintos de N, incluidos 1 y N mismo, que es la respuesta requerida.
A continuación se muestra la implementación del enfoque anterior:
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>
Producción
2
Complejidad de tiempo : O(sqrt(n))
Espacio auxiliar: O(1)