Il mio problema si riduce alla ricerca del numero di numeri primi tra due numeri dati. Potrei avere un intervallo grande come 1 to (1000)!
e quindi ho bisogno di alcune ottimizzazioni matematiche.Algoritmo veloce per trovare il numero di numeri primi tra due numeri
Chiaramente il metodo di setacciare sarebbe troppo lento in questo caso. C'è qualche ottimizzazione matematica che può essere applicata - come ad esempio, prendendo un sottoinsieme più piccolo di questo grande spazio e facendo inferenze sul resto dei numeri.
P.S: Sembra davvero che potrei aver raggiunto un punto morto, ma tutto quello che sto cercando sono alcune ottimizzazioni che potrebbero aiutare a risolvere questo. E inoltre, sto solo cercando un approccio a thread singolo.
EDIT: Un approccio che ho pensato e in grado di risolvere un sacco di grandi problemi relativi ai numeri primi - è che qualcuno mantenga una tabella globale di numeri primi e la renda disponibile per la ricerca. La gente del progetto PrimeGrid può contribuire utilmente a questo.
Non sono sicuro che sia d'aiuto, ma date un'occhiata alla [Funzione Conteggio Prime] (http://en.wikipedia.org/wiki/Prime-counting_function). Non è facile da valutare però. – Mysticial
Pubblica un po 'di codice - o almeno qualche pseudo codice di alcuni approcci che hai provato. –
I numeri indicati sono compresi tra 1 e 10^5'? Oppure possono essere molto più grandi ed è la lunghezza dell'intervallo che può arrivare a '10^5'? –