Нахождение списка простых чисел в кратчайшие сроки

Я прочитал много алгоритмов, чтобы найти простые числа, и пришел к выводу, что число - это простое число, если оно не делится ни на одно из предшествующих простых чисел.

Я не могу найти более точное определение. Основываясь на этом, я написал код, и он работает удовлетворительно, пока максимальное число, которое я передаю, не будет 1000000. Но я считаю, что есть гораздо более быстрые алгоритмы, чтобы найти все простые числа меньше, чем данное число.

Ниже приведен мой код, могу ли я иметь лучшую версию того же самого?

 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;
}

Ответы на вопрос(5)

Ваш ответ на вопрос