Java Program for Find largest prime factor of a number

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

Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java Program to find largest
// prime factor of number
import java.io.*;
import java.util.*;
  
class GFG {
  
// function to find largest prime factor
static long maxPrimeFactors( long n)
{
    // Initialize the maximum prime
    // factor variable with the 
    // lowest one
    long maxPrime = -1;
  
    // Print the number of 2s
    // that divide n
    while (n % 2 == 0) {
        maxPrime = 2;
          
        // equivalent to n /= 2
        n >>= 1
    }
  
    // n must be odd at this point,
    // thus skip the even numbers 
    // and iterate only for odd
    // integers
    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;
  
    return maxPrime;
}
  
// Driver code
public static void main(String[] args)
{
    Long n = 15l;
    System.out.println(maxPrimeFactors(n));
  
    n = 25698751364526l;
    System.out.println(maxPrimeFactors(n));
}
}
  
// This code is contributed by Gitanjali

chevron_right



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!



My Personal Notes arrow_drop_up


Article Tags :

2


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.