Dado un número entero N , la tarea es encontrar la suma de N y su factor primo máximo.
Ejemplos:
Entrada: 19
Salida: 38
El factor primo máximo de 19 es 19.
Por lo tanto, 19 + 19 = 38
Entrada: 8
Salida: 10
8 + 2 = 10
Enfoque: encuentre el factor primo más grande del número y guárdelo en maxPrimeFact , luego imprima el valor de N + maxPrimeFact .
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program to find sum of n and // it's largest prime factor #include <cmath> #include <iostream> using namespace std; // Function to return the sum of n and // it's largest prime factor int maxPrimeFactors(int n) { int num = n; // Initialise maxPrime to -1. int maxPrime = -1; while (n % 2 == 0) { maxPrime = 2; n /= 2; } // n must be odd at this point, thus skip // the even numbers and iterate only odd numbers for (int i = 3; i <= sqrt(n); i += 2) { while (n % i == 0) { maxPrime = i; n = n / i; } } // This condition is to handle the case // when n is a prime number greater than 2 if (n > 2) maxPrime = n; // finally return the sum. int sum = maxPrime + num; return sum; } // Driver Program to check the above function. int main() { int n = 19; cout << maxPrimeFactors(n); return 0; }
Java
// Java program to find sum of n and // it's largest prime factor import java.io.*; class GFG { // Function to return the sum of n // and it's largest prime factor static int maxPrimeFactors(int n) { int num = n; // Initialise maxPrime to -1. int maxPrime = -1; while (n % 2 == 0) { maxPrime = 2; n /= 2; } // n must be odd at this point, // thus skip the even numbers and // iterate only odd numbers for (int i = 3; i <= Math.sqrt(n); i += 2) { while (n % i == 0) { maxPrime = i; n = n / i; } } // This condition is to handle the case // when n is a prime number greater than 2 if (n > 2) { maxPrime = n; } // finally return the sum. int sum = maxPrime + num; return sum; } // Driver Code public static void main (String[] args) { int n = 19; System.out.println(maxPrimeFactors(n)); } } // This code is contributed by anuj_67
Python3
# Python 3 program to find sum of n and # it's largest prime factor from math import sqrt # Function to return the sum of n and # it's largest prime factor def maxPrimeFactors(n): num = n # Initialise maxPrime to -1. maxPrime = -1; while (n % 2 == 0): maxPrime = 2 n = n / 2 # n must be odd at this point, thus skip # the even numbers and iterate only odd numbers p = int(sqrt(n) + 1) for i in range(3, p, 2): while (n % i == 0): maxPrime = i n = n / i # This condition is to handle the case # when n is a prime number greater than 2 if (n > 2): maxPrime = n # finally return the sum. sum = maxPrime + num return sum # Driver Code if __name__ == '__main__': n = 19 print(maxPrimeFactors(n)) # This code is contributed by # Surendra_Gangwar
C#
// C# program to find sum of n and // it's largest prime factor using System; class GFG { // Function to return the sum of n // and it's largest prime factor static int maxPrimeFactors(int n) { int num = n; // Initialise maxPrime to -1. int maxPrime = -1; while (n % 2 == 0) { maxPrime = 2; n /= 2; } // n must be odd at this point, // thus skip the even numbers and // iterate only odd numbers for (int i = 3; i <= Math.Sqrt(n); i += 2) { while (n % i == 0) { maxPrime = i; n = n / i; } } // This condition is to handle the case // when n is a prime number greater than 2 if (n > 2) { maxPrime = n; } // finally return the sum. int sum = maxPrime + num; return sum; } // Driver Code static void Main () { int n = 19; Console.WriteLine(maxPrimeFactors(n)); } } // This code is contributed by Ryuga
PHP
<?php // PHP program to find sum of n and // it's largest prime factor // Function to return the sum of n // and it's largest prime factor function maxPrimeFactors($n) { $num = $n; // Initialise maxPrime to -1. $maxPrime = -1; while ($n % 2 == 0) { $maxPrime = 2; $n /= 2; } // n must be odd at this point, // thus skip the even numbers // and iterate only odd numbers for ($i = 3; $i <= sqrt($n); $i += 2) { while ($n % $i == 0) { $maxPrime = $i; $n = $n / $i; } } // This condition is to handle the case // when n is a prime number greater than 2 if ($n > 2) $maxPrime = $n; // finally return the sum. $sum = $maxPrime + $num; return $sum; } // Driver Code $n = 19; echo maxPrimeFactors($n); // This code is contributed // by inder_verma ?>
Javascript
<script> // Javascript program to find sum of n and // it's largest prime factor // Function to return the sum of n // and it's largest prime factor function maxPrimeFactors(n) { var num = n; // Initialise maxPrime to -1. var maxPrime = -1; while (n % 2 == 0) { maxPrime = 2; n = parseInt(n/2); } // n must be odd at this point, // thus skip the even numbers and // iterate only odd numbers for (var i = 3; i <= parseInt(Math.sqrt(n)); i += 2) { while (n % i == 0) { maxPrime = i; n = parseInt(n / i); } } // This condition is to handle the case // when n is a prime number greater than 2 if (n > 2) { maxPrime = n; } // finally return the sum. var sum = maxPrime + num; return sum; } // Driver Code var n = 19; document.write(maxPrimeFactors(n)); // This code contributed by shikhasingrajput </script>
Producción:
38
Complejidad de tiempo: O(sqrtn*logn)
Espacio Auxiliar: O(1)
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