Projet Euler Question 3 Aide

Je suis en train de travailler à travers le Projet Euler et je suis de heurter un obstacle sur le problème de 03. J'ai un algorithme qui fonctionne pour les petits nombres, mais le problème 3 utilise un très, très grand nombre.

Problème 03:
Le premier des facteurs de 13195 sont 5, 7, 13 et 29.
Quel est le plus grand facteur premier de le nombre 600851475143?

Voici ma solution en C# et ça fonctionne car je pense que près d'une heure. Je ne suis pas à la recherche d'une réponse, parce que je ne veux réellement à résoudre moi-même. Principalement à la recherche de l'aide.

    static void Main(string[] args) {
        const long n = 600851475143;
        //const long n = 13195;
        long count, half, largestPrime = 0;
        bool IsAPrime;

        half = n / 2;

        for (long i = half; i > 1 && largestPrime == 0; i--) {
             if (n % i == 0) { //these are factors of n
                count = 1;
                IsAPrime = true;
                while (++count < i && IsAPrime) {
                    if (i % count == 0) { //does a factor of n have a factor? (not prime)
                        IsAPrime = false;
                    }
                }
                if (IsAPrime) {
                    largestPrime = i;
                }
            }
        }

        Console.WriteLine("The largest prime factor is " + largestPrime.ToString() + ".");
        Console.ReadLine();
    }

source d'informationauteur Ryan Rodemoyer