Dado un número entero N , las siguientes operaciones se pueden realizar cualquier número de veces en N :
- Multiplique N por cualquier número entero positivo X , es decir , N = N * X.
- Reemplace N con la raíz cuadrada de N ( N debe ser un número entero), es decir, N = sqrt(N) .
La tarea es encontrar el número entero mínimo al que se puede reducir N con las operaciones anteriores.
Ejemplos:
Entrada: N = 20
Salida: 10
Podemos multiplicar 20 por 5, luego tomar sqrt(20*5) = 10, este es el número mínimo al que se puede reducir 20 con las operaciones dadas.
Entrada : N = 36
Salida: 6
Tomar sqrt(36). El número 6 no se puede reducir más.
Acercarse:
- Primero factoriza el número N.
- Digamos que 12 tiene factores 2, 2 y 5 . Solo los factores que se repiten se pueden reducir con sqrt(n), es decir , sqrt(2*2) = 2 .
- Los números que aparecen una sola vez en los factores no se pueden reducir más.
- Entonces, la respuesta final será el producto de todos los factores primos distintos del número N
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ implementation of the above approach #include <bits/stdc++.h> #define ll long long int using namespace std; // function to return the product of // distinct prime factors of a number ll minimum(ll n) { ll product = 1; // find distinct prime for (int i = 2; i * i <= n; i++) { if (n % i == 0) { while (n % i == 0) n = n / i; product = product * i; } } if (n >= 2) product = product * n; return product; } // Driver code int main() { ll n = 20; cout << minimum(n) << endl; return 0; }
Java
// Java implementation of the above approach import java.util.*; class solution { // function to return the product of // distinct prime factors of a number static int minimum(int n) { int product = 1; // find distinct prime for (int i = 2; i * i <= n; i++) { if (n % i == 0) { while (n % i == 0) n = n / i; product = product * i; } } if (n >= 2) product = product * n; return product; } // Driver code public static void main(String arr[]) { int n = 20; System.out.println(minimum(n)); } } //This code is contributed by //Surendra_Gangwar
Python3
# Python3 implementation of above approach # function to return the product # of distinct prime factors of a # numberdef minSteps(str): def minimum(n): product = 1 # find distinct prime i = 2 while i * i <= n: if n % i == 0: while n % i == 0: n = n / i product = product * i i = i + 1 if n >= 2: product = product * n return product # Driver code # Get the binary string n = 20 print(minimum(n)) # This code is contributed # by Shashank_Sharma
C#
// C# implementation of the above approach class GFG { // function to return the product of // distinct prime factors of a number static int minimum(int n) { int product = 1; // find distinct prime for (int i = 2; i * i <= n; i++) { if (n % i == 0) { while (n % i == 0) n = n / i; product = product * i; } } if (n >= 2) product = product * n; return product; } // Driver code static void Main() { int n = 20; System.Console.WriteLine(minimum(n)); } } // This code is contributed by mits
PHP
<?php // PHP implementation of the // above approach // function to return the product of // distinct prime factors of a number function minimum($n) { $product = 1; // find distinct prime for ($i = 2; $i * $i <= $n; $i++) { if ($n % $i == 0) { while ($n % $i == 0) $n = $n / $i; $product = $product * $i; } } if ($n >= 2) $product = $product * $n; return $product; } // Driver code $n = 20; echo minimum($n),"\n"; // This code is contributed by ANKITRAI1 ?>
Javascript
<script> // JavaScript implementation of the above approach // function to return the product of // distinct prime factors of a number function minimum( n) { let product = 1; // find distinct prime for (let i = 2; i * i <= n; i++) { if (n % i == 0) { while (n % i == 0) n = n / i; product = product * i; } } if (n >= 2) product = product * n; return product; } // Driver code let n = 20; document.write(minimum(n)); // This code is contributed by sravan kumar </script>
Producción:
10
Publicación traducida automáticamente
Artículo escrito por sahilshelangia y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA