Algorithme rapide pour rechercher le nombre de nombres premiers entre deux nombres

Mon problème se réduit à trouver le nombre de nombres premiers entre deux nombres donnés.Je pourrait avoir une portée aussi grande que 1 to (1000)! et donc je suis besoin de certains mathématique des optimisations.

Clairement le tamis méthode serait trop lent dans ce cas. Est-il mathématique d'optimisation qui peuvent être appliquées, comme par exemple, en prenant une petite partie de ce grand espace et de faire des inférences sur le reste des numéros.

P. S: Cela ressemble fort à je risque d'avoir atteint une impasse - mais tout ce que je suis à la recherche de quelques optimisations qui pourraient aider à résoudre ce problème. Et aussi, je suis seulement à la recherche d'une approche monothread.

EDIT: Une approche que j'ai pensé et peut résoudre beaucoup de grand nombre de problèmes liés - pour quelqu'un de maintenir un tableau global des nombres premiers et de la rendre disponible pour la recherche. Les gens à la PrimeGrid projet peut contribuer utilement à cette fin.

Vous ne savez pas si ça aide, mais jetez un oeil à la Premier la Fonction de compte. Il n'est pas facile à évaluer.
Poster du code, ou au moins certains Pseudo-code de quelques approches que vous avez essayé.
Sont les chiffres donnés entre 1 et 10^5? Ou peuvent-ils beaucoup plus grande et c'est la longueur de l'intervalle qui peut être jusqu'à 10^5?
Les nombres donnés sont entre 1 et N, où N est autour de 1000!.
Si vous choisissez un N assez petit tel que une liste de tous les nombres premiers <= N peut être stocké sur un disque dur, alors il serait plus rapide de calculer tous ces nombres premiers à la volée plutôt que de les lire à partir du disque dur.

OriginalL'auteur Hari | 2012-01-20