static void Main(string[] args) { long numberToFactor = 600851475143; long highestPrime = PrimeFactory.GetHighestPrime(numberToFactor); Console.WriteLine("Highest prime factor of "+ numberToFactor +": " + highestPrime); Console.ReadKey(); }
public static long GetHighestPrime(long numberToFactor) { PrimeFactory primeFactory = new PrimeFactory(); long highestPrime = 1; while (numberToFactor > 1) { long prime = primeFactory.ReturnFirstOrNextPrime(); while (numberToFactor % prime == 0) { highestPrime = prime; numberToFactor /= prime; } } return(highestPrime); }