Skip to content
Related Articles

Related Articles

C Program for Find largest prime factor of a number
  • Last Updated : 06 Dec, 2018

Given a positive integer ‘n'( 1 <= n <= 1015). Find the largest prime factor of a number.

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;
}
Output:
5
328513

Time complexity: \text{O}(\sqrt{n})
Auxiliary space: \text{O}(1)

Please refer complete article on Find largest prime factor of a number for more details!

Want to learn from the best curated videos and practice problems, check out the C Foundation Course for Basic to Advanced C.




My Personal Notes arrow_drop_up
Recommended Articles
Page :