Salve a tutti
Rieccomi, stavolta con un problema molto molto più irrilevante rispetto ai miei soliti :P
Sto implementando in un progetto , la creazione di numeri primi di grandi dimensioni, da 64 cifre l'uno..
Il mio codice funziona senza problemi, tuttavia i tempi di creazione sono lunghi (molto lunghi...) volevo quindi sapere se esistono modi per velocizzare una generazione di numeri primi quando si ha a che fare con numeri grandi.. (nel mio caso da 64 in su)
Qualche codice speciale...qualche funzione, non saprei...
tipo invece di fare un numero da 64 cifre se ne creano due da 32 e poi si assemblano in un unico vettore..ma non so 1) se sia facilmente fattibile 2) se c'è veramente risparmio di tempo...
codice:
bigInt bprimo(int dim)
{
bigInt primo, ris;
int i;
primo.sign = 0;
do
{
while(primo.num.size()>0) primo.num.pop_back();
for(i=0;i<dim-1;i++) primo.num.push_back(rand()%10);
primo.num.push_back(rand()%9);
if (primo.num[0]%2==0) printf("4");primo = bsub(primo,int2bint(1));
ris = bpowmod (int2bint(2),bsub(primo,int2bint(1)),primo);
} while ((ris.num.size() != 1)&&(ris.num[0] != 1));
return primo;
}
la mia dim è di 64 appunto ^^
e come detto sopra, i tempi sono leeeeenti. A volte eccessivi, a volte sopportabili...
Grazie in anticipo