27/02/09 14:14
eddiewrc
beh geniale.. se fossi nato circa 2300 anni fa... in pratica stai parlando del crivello di eratostene!
cmq l'algoritmo attualmente migliore è il "number field sieve", cioè il crivello del campo numerico.
aaa
10/06/09 22:40
NickoMaiden
sicuramente a velocità fa schifo ma l'unica cosa che mi è passato x il cervello è questa:
int primo=0,verifica;
while(1)
{
verifica=0;
for(int i=1;i<primo;i++)
{
if(primo%i==0)
verifica++;
}
if(verifica<2)
{
cout<<primo<<"\n";
}
primo++;
}
praticamente conto tutte le volte che è stato possibile dividere. siccome i numeri primi possono essere divisi solo x se stessi e per uno il numero massimo di volte che sono stati divisi deve essere quindi inferiore a 2
sicuramente questo è l'algoritmo + lento del mondo x questo tipo di problema!
edit: con questo algoritmo inizialndolo a 81110000 in 5 minuti ha prodotto solo 6 risultati:
81110023
81110027
81110039
81110041
81110047
81110059
confermo che è l'algoritmo + lento del mondo
Ultima modifica effettuata da NickoMaiden 10/06/09 23:12
aaa
15/06/09 13:58
vince92
Con 1 ora di elaborazione, sono riuscito a trovare questo numero che spero sia primo.
Ho fatto un test probabilistico e quindi c'è la possibilità, che è molto piccola, che quel numero non sia primo
Ultima modifica effettuata da vince92 15/06/09 14:02
aaa
15/06/09 21:17
eddiewrc
in un test probabilistico la possibilità è più alta di quanto si pensa...
aaa
16/06/09 13:29
vince92
La possibilità che il numero non sia primo è circa 1/(2x10^-148)
Ultima modifica effettuata da vince92 16/06/09 13:36
aaa