Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - numeri primi
Forum - C/C++ - numeri primi

Avatar
sweetema (Normal User)
Rookie


Messaggi: 32
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 11:17
Lunedì, 02/02/2009
chi mi suggerisce un codice per un programma che determini e visualizzi i numeri primi compresi tra 1 e 10000??grazie in anticipo

PM Quote
Avatar
gioser (Normal User)
Pro


Messaggi: 111
Iscritto: 03/10/2008

Segnala al moderatore
Postato alle 14:19
Lunedì, 02/02/2009
parti dalla definizione di numero primo e pensaci su... non è difficile :)

PM Quote
Avatar
sweetema (Normal User)
Rookie


Messaggi: 32
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 19:38
Lunedì, 02/02/2009
vabbè teoricamente posso dire che se considero un array,inizializzo a zero tutti i numeri pari e ad 1 tutti quelli dispari!!poi con un ciclo man mano che trovo un elemento uguale a 1, imposto a 0 tutti gli elementi il cui indice è multiplo dell'elemento trovato!!!così tutti gli indici degli elementi che restano uguale a 1 sono numeri primi!!!il problema è che non riesco a metterlo in pratica...sarà inesxienza????:d

PM Quote
Avatar
gioser (Normal User)
Pro


Messaggi: 111
Iscritto: 03/10/2008

Segnala al moderatore
Postato alle 10:07
Martedì, 03/02/2009

Ultima modifica effettuata da gioser il 03/02/2009 alle 10:08
PM Quote
Avatar
sweetema (Normal User)
Rookie


Messaggi: 32
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 14:49
Venerdì, 06/02/2009
ciao,grazie xil link,ma non mi è stato di aiuto xkè c erano molte cose che non ho fatto...cmq..+o- ho risolto il problema,che ne pensi???
Codice sorgente - presumibilmente C++

  1. #include<iostream.h>
  2.  
  3. using namespace std;
  4.  
  5. int a[100];
  6. int t;
  7.  
  8. void function0(int a[],int size, int value)
  9. {
  10.         for(int s=3;s<100;s++)
  11.         {
  12.          int number;
  13.          number=t*s;
  14.          a[number]=0;
  15.  
  16.         }
  17. }
  18.  
  19. int main()
  20. {
  21.  
  22.  
  23.         for(int x=0;x<100;x++)
  24.         {
  25.                 if(x%2==0)
  26.                         a[x]=0;
  27.                 else
  28.                         a[x]=1;
  29.         }
  30.  
  31.         for (t=3;t<100;t+=2)
  32.         {
  33.                 if(a[t]==1)
  34.                         function0(a,100,t);
  35.  
  36.         }
  37.  
  38.         for(int g=0;g<100;g++)
  39.         {
  40.                 if(a[g]==1)
  41.                         cout<<g<<"\n";
  42.         }
  43.  
  44.         return 0;
  45. }

:k:

PM Quote
Avatar
gioser (Normal User)
Pro


Messaggi: 111
Iscritto: 03/10/2008

Segnala al moderatore
Postato alle 13:10
Lunedì, 09/02/2009
Funzion quasi,

a) nella funzione function0 sfori un array :(

b) se dichiari una fuzione che prende dei parametri devi usarli :)


Codice sorgente - presumibilmente C++

  1. void function0(int a[],int size, int value)
  2. {
  3.         for(int s = 3; s * value < size; s++)
  4.         {
  5.          int number;
  6.          number=value*s;
  7.          a[number]=0;
  8.  
  9.         }
  10. }



a questo punto puoi spostare la dichiarazione di t dentro al main()

... e modificare tutto per farlo funzionare per 10000 invece di 100 :) ...

ciao :)

Ultima modifica effettuata da gioser il 09/02/2009 alle 13:12
PM Quote
Avatar
sweetema (Normal User)
Rookie


Messaggi: 32
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 13:33
Lunedì, 09/02/2009
grazieeeeee:D

PM Quote