Trouver la liste des nombres premiers dans les plus brefs délais

J'ai lu beaucoup de nombreux algorithmes pour trouver des nombres premiers et la conclusion est qu'un nombre est un nombre premier s'il n'est pas divisible par l'un de ses précédents nombres premiers.

Je ne suis pas en mesure de trouver une définition plus précise. Basé sur ce que j'ai écrit un code et il fonctionne satisfaisante jusqu'le nombre max je passe est 1000000. Mais je crois qu'il y a beaucoup plus rapide des algorithmes pour trouver tous les nombres premiers inférieur à un nombre donné.

Voici mon code, je peux avoir une meilleure version de la même chose?

 public static void main(String[] args) {
    for (int i = 2; i < 100000; i++) {
        if (checkMod(i)) {
            primes.add(i);
        }
    }
}

private static boolean checkMod( int num) {
    for (int i : primes){
        if( num % i == 0){
            return false;
        }
    }
    return true;
}
Avez-vous essayé de chercher sur le site? Il y a une tonne de questions sur le premier numéro de trouver des algorithmes.
oui j'ai trouvé une solution ici stackoverflow.com/questions/3808171/... Mais quelque part, il n'est pas bien expliqué et je crois que c'est compliqué 🙁
codereview.stackexchange.com

OriginalL'auteur dharam | 2012-05-21