C Program for Find largest prime factor of a number

Given a positive integer ‘n'( 1 <= n <= 10^{15}). Find the largest prime factor of a number.

Input:6Output:3ExplanationPrime factor of 6 are- 2, 3 Largest of them is '3'Input:15Output: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: ****Auxiliary space: **

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.