Encuentra la suma mínima de los factores de un número

Dado un número, hallar la suma mínima de sus factores.
Ejemplos: 
 

Input : 12
Output : 7
Explanation: 
Following are different ways to factorize 12 and
sum of factors in different ways.
12 = 12 * 1 = 12 + 1 = 13
12 = 2 * 6 = 2 + 6 = 8
12 = 3 * 4 = 3 + 4 = 7
12 = 2 * 2 * 3 = 2 + 2 + 3 = 7
Therefore minimum sum is 7

Input : 105
Output : 15

Para minimizar la suma, debemos factorizar los factores tanto como sea posible. Con este proceso, tenemos factores primos . Entonces, para encontrar la suma mínima del producto del número, encontramos la suma de los factores primos del producto.
 

C++

// CPP program to find minimum
// sum of product of number
#include <bits/stdc++.h>
using namespace std;
 
// To find minimum sum of
// product of number
int findMinSum(int num)
{
    int sum = 0;
 
    // Find factors of number
    // and add to the sum
    for (int i = 2; i * i <= num; i++) {
        while (num % i == 0) {
            sum += i;
            num /= i;
        }
    }
    sum += num;
 
    // Return sum of numbers
    // having minimum product
    return sum;
}
 
// Driver program to test above function
int main()
{
    int num = 12;
 
    cout << findMinSum(num);
 
    return 0;
}

Java

// Java program to find minimum
// sum of product of number
 
public class Main {
 
    // To find minimum sum of
    // product of number
    static int findMinSum(int num)
    {
        int sum = 0;
 
        // Find factors of number
        // and add to the sum
        for (int i = 2; i * i <= num; i++) {
            while (num % i == 0) {
                sum += i;
                num /= i;
            }
        }
        sum += num;
 
        // Return sum of numbers
        // having minimum product
        return sum;
    }
 
    // Driver program to test above function
    public static void main(String[] args)
    {
        int num = 12;
        System.out.println(findMinSum(num));
    }
}

Python3

# Python program to find minimum
# sum of product of number
  
# To find minimum sum of
# product of number
def findMinSum(num):
    sum = 0
     
    # Find factors of number
    # and add to the sum
    i = 2
    while(i * i <= num):
        while(num % i == 0):
            sum += i
            num //= i
        i += 1
    sum += num
     
    # Return sum of numbers
    # having minimum product
    return sum
 
# Driver Code
num = 12
print (findMinSum(num))
 
# This code is contributed by Sachin Bisht

C#

// C# program to find minimum
// sum of product of number
using System;
 
public class GFG {
 
    // To find minimum sum of
    // product of number
    static int findMinSum(int num)
    {
        int sum = 0;
 
        // Find factors of number
        // and add to the sum
        for (int i = 2; i * i <= num; i++) {
            while (num % i == 0) {
                sum += i;
                num /= i;
            }
        }
        sum += num;
 
        // Return sum of numbers
        // having minimum product
        return sum;
    }
 
    // Driver Code
    public static void Main()
    {
        int num = 12;
        Console.Write(findMinSum(num));
    }
     
}
 
// This Code is contributed by Nitin Mittal.

PHP

<?php
// PHP program to find minimum
// sum of product of number
 
// To find minimum sum of
// product of number
function findMinSum($num)
{
    $sum = 0;
 
    // Find factors of number
    // and add to the sum
    for ($i = 2; $i * $i <= $num; $i++)
    {
        while ($num % $i == 0)
        {
            $sum += $i;
            $num /= $i;
        }
    }
    $sum += $num;
 
    // Return sum of numbers
    // having minimum product
    return $sum;
}
 
// Driver Code
$num = 12;
 
echo(findMinSum($num));
 
// This code is contributed by Ajit.
?>

Javascript

<script>
 
// Javascript program to find minimum
// sum of product of number
   
// To find minimum sum of
// product of number
function findMinSum(num)
{
    let sum = 0;
   
    // Find factors of number
    // and add to the sum
    for (let i = 2; i * i <= num; i++) 
    {
        while (num % i == 0) 
        {
            sum += i;
            num /= i;
        }
    }
    sum += num;
   
    // Return sum of numbers
    // having minimum product
    return sum;
}
   
// Driver Code
let num = 12;
   
document.write(findMinSum(num));
   
// This code is contributed by _saurabh_jaiswal.
 
</script>

Producción: 

7

Complejidad de tiempo: O (n 1/2 * log n)

Espacio auxiliar: O(1)
Este artículo es una contribución de nuclode . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 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 *