Моя проблема сводится к поиску количества простых чисел между двумя заданными числами. Я мог бы иметь диапазон, равный 1 to (1000)!
, и, следовательно, мне нужны некоторые математические оптимизации.Быстрый алгоритм для поиска числа простых чисел между двумя номерами
Очевидно, что в этом случае метод сита будет слишком медленным. Есть ли какая-либо математическая оптимизация, которая может быть применена - например, взяв меньшую подмножество этого большого пространства и сделав выводы о остальной части чисел.
P.S: Это определенно похоже, что я, возможно, достиг тупика, но все, что я ищу, - это некоторые оптимизации, которые могли бы помочь в решении этого. А также я ищу только однопоточный подход.
EDIT: Один из подходов, о котором я думал и могу решить множество проблем, связанных с большим простым числом, - это для кого-то поддерживать глобальную таблицу простых чисел и сделать ее доступной для поиска. Люди в проекте PrimeGrid могут внести полезный вклад в это.
Не уверен, что это помогает, но посмотрите на [Prime Counting Function] (http://en.wikipedia.org/wiki/Prime-counting_function). Однако оценить непросто. – Mysticial
Опубликуйте некоторый код - или, по крайней мере, некоторый Псевдокод некоторых подходов, которые вы пробовали. –
Являются ли заданные числа от 1 до '10^5'? Или они могут быть намного больше, и это длина интервала, которая может быть до 10^5? –