J'essaie de trouver le nombre premier dans une liste en utilisant le Sieve of Eratosthenes. J'ai essayé ceci:itération à travers une liste de changement avec Linq
var primeNumber = new List<int>(Enumerable.Range(2, max - 1));
primeNumber.ForEach(m => primeNumber.RemoveAll(n => n % m == 0));
mais ça n'a pas marché puisque vous ne pouvez pas itérer sur une liste qui est en train de changer. Existe-t-il un meilleur moyen que de créer un autre tableau et de l'itérer, puisque je n'ai besoin que d'itérer le nombre premier? Avec le deuxième tableau, je supprimerais tout ce qui peut être divisé par 2 puis enlèverai tout ce qui peut être divisé par 4 (il ne devrait y en avoir aucun) et ainsi de suite ...
Merci déjà pour vos réponses.
N'utilisez pas de listes pour le tamis des ératosthènes, utilisez des matrices de bits. – starblue