Find Largest Prime Factor of a Number?
long LargestPrimeFactor(long n)
long maxPrime = -1;
while (n % 2 == 0)
maxPrime = 2;
n /= 2;
for (long i = 3; i * i <= n; i += 2)
while (n % i == 0)
maxPrime = i;
n /= i;
if (n > 2) maxPrime = n;
return maxPrime;
Follow on:
Explanation:
Divide out factors of 2, then test odd factors; leftover > 2 is prime.
Miscellaneous Problems