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