Minimizar el valor de N aplicando las operaciones dadas

Dado un número entero N , las siguientes operaciones se pueden realizar cualquier número de veces en N
 

  1. Multiplique N por cualquier número entero positivo X , es decir , N = N * X.
  2. 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:
Tomar sqrt(36). El número 6 no se puede reducir más. 
 

Acercarse: 
 

  1. Primero factoriza el número N.
  2. 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 .
  3. Los números que aparecen una sola vez en los factores no se pueden reducir más.
  4. 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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *