Encontrar a lista de números primos no menor tempo
Eu leio muitos algoritmos para encontrar números primos e a conclusão é que um número é um número primo se não for divisível por nenhum de seus números primos anteriores.
Não consigo encontrar uma definição mais precisa. Com base nisso, eu escrevi um código e ele funciona satisfatoriamente até que o número máximo que eu passe seja 1000000. Mas eu acredito que há algoritmos muito mais rápidos para encontrar todos os primos menores que um determinado número.
Segue o meu código, posso ter uma versão melhor do mesmo?
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;
}