|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#21 |
|
Bannato
Iscritto dal: Feb 2003
Messaggi: 947
|
Ultima modifica di repne scasb : 03-02-2005 alle 13:43. |
|
|
|
|
|
#22 |
|
Bannato
Iscritto dal: Feb 2003
Messaggi: 947
|
Ultima modifica di repne scasb : 03-02-2005 alle 13:43. |
|
|
|
|
|
#23 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
|
|
|
|
|
|
|
#24 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Probabilmente avevo copiato una versioen sbagliata del tuo codice...
Comunque ora il mio ci mette 4 secondi per 100000000 numeri... Mentre il tuo 9 secondi....sempre con printf commentate... Codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
int main(int argc, char *argv[])
{
int max, lim, size, i, j, z;
char *list;
if(argc < 2)
return 1;
if((max = atoi(argv[1])) <= 2)
return 1;
size = (max / 2 + 1);
if((list = (char *)calloc(sizeof(char), size)) == NULL)
return 1;
for(i=0; i<size; i++)
list[i]=0;
printf("2 ");
lim = (int)sqrt(max);
for(j=1,i=3; i<=lim; ++j,i+=2)
{
if(!list[j])
{
for(z=j+i; z<size; z+=i)
list[z] = -1;
printf("%d ", i);
}
}
for(; i<max; i+=2, ++j)
if(!list[j])
printf("%d ", i);
return 0;
}
|
|
|
|
|
|
#25 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ho riguardato ed ho visto che la differenza principale era nella struttura del vettore (io l'ho fatto di char)...che rende il programma più veloce del 45%... Mettendo comunque int (come nel tuo) faccio due secondi meno del tuo
|
|
|
|
|
|
#26 |
|
Bannato
Iscritto dal: Feb 2003
Messaggi: 947
|
Ultima modifica di repne scasb : 03-02-2005 alle 13:42. |
|
|
|
|
|
#27 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Possibile...ma quel 30% in più sono solo INC...mentre le tuo sono più pesanti perchè sono moltiplicazioni
|
|
|
|
|
|
#28 |
|
Bannato
Iscritto dal: Feb 2003
Messaggi: 947
|
Ultima modifica di repne scasb : 03-02-2005 alle 13:42. |
|
|
|
|
|
#29 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
|
|
|
|
|
|
|
#30 |
|
Senior Member
Iscritto dal: Aug 2004
Messaggi: 311
|
20 istruzioni
PIV 2GHz Fortran95 100000000 (cento milioni) tempo di calcolo = 0.63 s
__________________
Senior Member Registrato il: Jan 2001 Messaggi: 2609 |
|
|
|
|
|
#31 |
|
Bannato
Iscritto dal: Feb 2003
Messaggi: 947
|
Ultima modifica di repne scasb : 03-02-2005 alle 13:41. |
|
|
|
|
|
#32 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ecco qua con gli int...
Codice:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
int main(int argc, char *argv[])
{
int max, lim, size, i, j, z;
int *list;
if(argc < 2)
return 1;
if((max = atoi(argv[1])) <= 2)
return 1;
size = (max / 2 + 1);
if((list = (int *)calloc(sizeof(int), size)) == NULL)
return 1;
for(i=0; i<size; i++)
list[i]=0;
printf("2 ");
lim = (int)sqrt(max);
for(j=1,i=3; i<=lim; ++j,i+=2)
{
if(!list[j])
{
for(z=j+i; z<size; z+=i)
list[z] = -1;
printf("%d ", i);
}
}
for(; i<max; i+=2, ++j)
if(!list[j])
printf("%d ", i);
|
|
|
|
|
|
#33 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
|
|
|
|
|
|
|
#34 |
|
Senior Member
Iscritto dal: Aug 2004
Messaggi: 311
|
prefettato sfizzero ®®®®®®®®®®®
__________________
Senior Member Registrato il: Jan 2001 Messaggi: 2609 Ultima modifica di a2000.1 : 29-11-2004 alle 21:58. |
|
|
|
|
|
#35 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
|
|
|
|
|
|
|
#36 |
|
Bannato
Iscritto dal: Feb 2003
Messaggi: 947
|
Ultima modifica di repne scasb : 03-02-2005 alle 13:41. |
|
|
|
|
|
#37 | |
|
Senior Member
Iscritto dal: Aug 2004
Messaggi: 311
|
Quote:
__________________
Senior Member Registrato il: Jan 2001 Messaggi: 2609 |
|
|
|
|
|
|
#38 |
|
Bannato
Iscritto dal: Feb 2003
Messaggi: 947
|
Ultima modifica di repne scasb : 03-02-2005 alle 13:40. |
|
|
|
|
|
#39 | |
|
Senior Member
Iscritto dal: Aug 2004
Messaggi: 311
|
Quote:
__________________
Senior Member Registrato il: Jan 2001 Messaggi: 2609 |
|
|
|
|
|
|
#40 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 13:19.



















