Есть несколько способов сделать то, что вы хотите.
Теорема о простых числах говорит, что число простых чисел, меньших n , асимптотически равно n / log ( n ). Вы можете добавить небольшой буфер, затем сделать сито Эратосфена и выбросить все простые числа за пределы вашего лимита.
Вместо аппроксимации есть формулы, которые вычисляют точное число простых чисел, меньших n , без перечисления простых чисел. Вы можете использовать одну из этих формул, чтобы найти n th простое число, а затем использовать сито, чтобы составить список простых чисел. Если вы хотите использовать этот подход, поищите «сумма Лежандра» и «формула Лемера».
Вы можете использовать сегментированное сито Эратосфена. Просеять до некоторого удобного предела. Если у вас есть ответ, остановитесь. В противном случае выберите следующий сегмент, а затем следующий и т. Д., Пока не найдете нужное число простых чисел.
Существует очень умный метод генерации бесконечного списка простых чисел, который заменяет битовый массив Сита Эратосфена на очередь с приоритетами. Google для статьи Мелиссы О'Нил Подлинное сито Эратосфена .
Вы можете увидеть полные объяснения и реализации всех этих алгоритмов здесь .
Кстати, 195-е простое число - 1187. 247 простых чисел меньше 1568, а 97790 простых чисел меньше 1268426.