sto usando questa funzione per trovare numeri primi:

codice:
        static void Fprimi(List<long> List , long N)
        {
            foreach(long n in List)
            {
                if (N % n == 0)
                    Fprimi(Nprimi,N+1);
            }
            Nprimi.Add(N);
        }
dove List è una lista che contiene numeri primi e N e il numero che voglio sapere se è primo, se è primo lo aggiungo alla lista.
trova il 2, il 3, il 5, e poi si blocca e mi da questo errore:

InvalidOperationException
L'insieme è stato modificato. L'operazione di enumerazione potrebbe non essere eseguita.
e non so come il valore di N diventa 4 invece di 5.