Mid Coding

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

More from C# Programming Tutorial

All questions for this course