Latest Shouts In The Shoutbox -- View The Shoutbox
The shoutbox is currently offline!

[ Smilies | BBCodes ]
(ddos sopravvive solo con le donazioni, non dimenticarlo...)

matrimonio hosting housing server dedicati auto usate usato sicuro motori automobile motocicletta motorino certificazione lavoro temporaneo windows linux hardware software computer informatica videogiochi discoteca divertimento viaggi cinema teatro televisione elettronica esoterico magia donne alimentati mangiare ristorante grafica orologio vestiti moda abbigliamento risparmio soldi banca affari scommesse calcio totocalcio cavalli sport integratori palestra fitness dimagrire estetica scuola studio esame libri riviste edicola giornale dvd dvd-r cd-r verbatim tdk dual-layer musica cd amore uomini donne amici incontri suonerie cellulari sfondi desktop accessori memoria ram shopping salute lavoro finanza assicurazioni londra cuba arredamento fiera


  Reply to this topicStart new topicStart Poll

programmillo per numeri primi

Inviato il: Nov 13 2008, 04:46 PM  
Quote Post





Utente Nr.: 8377
Iscritto il: 13-November 08



Gruppo: Members
Messaggi: 2




Da oggi inizierò a stressarvi l'anima con i miei post nei quali inserirò i miei programmini.
È un mese e mezzo che ho iniziato a programmare dunque siate magnanimi :cheers: :cheers:

CODE
#include<conio.h>

#include<stdlib.h>

#include<stdio.h>



int main(void)



{

   

int a,resto,c,scelta;



printf("inserisci il valore che vuoi controllare: ");

scanf("%d",&scelta);



if (scelta == 2)



    {



     printf("2 e 1 sono  numeri primi...c'e' bisogno che te lo dica?");

     

     getch();

     

     return 0;

     

    }

   

   

   

if (scelta == 1)



    {



     printf("E' un numero primo...c'e' bisogno che te lo dica?");

     

     getch();

     

     return 0;

     

    }









do{



  c=scelta;



   do {

   

       --c;

       resto=scelta%c;

       //printf("\n%d",b);

 

          if (resto == 0)

   

          {

           

          printf("\n%d e' divisibile per %d e quindi non e' un  numero primo.\n",scelta,c);  

           

         

          }      

 

   

 

       }while(  resto > 0 && c >2  );

 

 

   if ( resto > 0 )  

     

      {

      printf("\n%d e' un numero primo!!\n",scelta);  

      }

     

     

     

   --scelta;    

   

  }  while( scelta > 2 );

 

 

printf("\n2 e 1 sono numeri primi.");

       



getch();

return 0;



   

   

}




Il programmino è semplice,io metto un numero(in questo caso "scelta") ed il programma partendo da quel numero,fino ad arrivare a 3,controlla se si tratta di numeri primi.
Verranno inoltre visualizzati anche numeri non primi accompagnati dal relativo disivore.

Secondo voi come potrei sistemarlo?cosa potrei aggiungere o togliere,per renderlo più ottimizzato?
 
PMEmail Poster
Top

Inviato il: Nov 13 2008, 07:08 PM  
Quote Post



Tenente
****
Utente Nr.: 891
Iscritto il: 13-May 05



Gruppo: Members
Messaggi: 712




ICQMSN
QUOTE (lakedaimonII @ Nov 13 2008, 04:46 PM)
Il programmino è semplice,io metto un numero(in questo caso "scelta") ed il programma partendo da quel numero,fino ad arrivare a 3,controlla se si tratta di numeri primi.
Verranno inoltre visualizzati anche numeri non primi accompagnati dal relativo disivore.

Secondo voi come potrei sistemarlo?cosa potrei aggiungere o togliere,per renderlo più ottimizzato?

Dunque...

Al momento prendi il numero N e lo dividi per tutti i numeri da N-1 a 2.
Una possibile ottimizzazione è dividere N per tutti i numeri a partire da ((int)sqrt(N)) a 2. Il perchè questo sia possibile, lo lascio alla tua curiosità.

Con questo sistema, dovendo valutare la primalità di un numero molto grande (esempio: 2324321151) anzichè fare N-1 iterazioni farai sqrt(N) iterazioni, che se per numeri piccoli non si nota per numeri grandi diventa praticamente indispensabile.



Se poi vuoi imbarcarti in una sfida, esistono algoritmi per determinare la primalità di un numero basati su metodi statistici. Questi metodi permettono di determinare se un numero è primo in tempi ragionevoli anche in presenza di un numero elevatissimo di cifre e la probabilità di errore (essendo un metodo statistico l'errore è sempre presente) è tipicamente inferiore alla probabilità che il computer sbagli un calcolo.
 
PMEmail PosterUsers Website
Top

Utenti totali che stanno leggendo la discussione: 0 (0 Visitatori e 0 Utenti Anonimi)
Gli utenti registrati sono 0 :

Topic Options Reply to this topicStart new topicStart Poll

 



[ Script Execution time: 0.0946 ]   [ 22 queries used ]   [ GZIP Abilitato ]



eXTReMe Tracker