Dado un entero positivo ‘n'( 1 <= n <= 10 15 ). Encuentra el mayor factor primo de un número.
Input: 6 Output: 3 Explanation Prime factor of 6 are- 2, 3 Largest of them is '3' Input: 15 Output: 5
// C Program to find largest prime // factor of number #include <math.h> #include <stdio.h> // A function to find largest prime factor long long maxPrimeFactors(long long n) { // Initialize the maximum prime factor // variable with the lowest one long long maxPrime = -1; // Print the number of 2s that divide n while (n % 2 == 0) { maxPrime = 2; n >>= 1; // equivalent to n /= 2 } // n must be odd at this point, thus skip // the even numbers and iterate only for // odd integers 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; return maxPrime; } // Driver program to test above function int main() { long long n = 15; printf("%lld\n", maxPrimeFactors(n)); n = 25698751364526; printf("%lld", maxPrimeFactors(n)); return 0; }
Producción:
5 328513
Complejidad temporal:
Espacio auxiliar:
Consulte el artículo completo sobre Encontrar el factor primo más grande de un número para obtener más detalles.
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