Funzione per trovare numeri primi

« Older   Newer »
 
  Share  
.
  1. lumo
     
    .

    User deleted


    CITAZIONE (~Andrey™ @ 7/11/2009, 23:31)
    CITAZIONE (RootkitNeo @ 7/11/2009, 22:51)
    Hai decisamente ragione!! :)

    In quel modo però poteva confrontarlo al suo script visto la similitudine!
    Questo è java

    CODICE
    String isPrime(int n) {
     for(int i=0; i<(int)Math.sqrt(n); i++) {
       if(i%­n==0) stato="Il numero "+n+" non e' primo.";
       else stato = "Il numero "+n+" e' primo.";
     }
     return stato;
    }


    Traducibile tranquillamente in Python! ;)

    Sarebbe meno dispendioso fare così:
    CODICE
    String isPrime(int n) {
     for(int i=0; i<(int)Math.sqrt(n); i++) {
       if(i%­n==0) return "Il numero "+n+" non e' primo.";
     }
     return "Il numero "+n+" e' primo.";
    }

    Si risparmiano un sacco di assegnazioni della variabile stato, e un sacco di iterazioni nel caso non fosse primo [in questo modo infatti se non è primo, al primao divisore la funzione termina] :)

    In teoria si, ma in pratica il compilatore ti ottimizza il codice e lo fa diventare come il tuo xD
    Comunque per funzioni come quella sarebbe meglio tornare a un Boolean ( true, false )
     
    Top
    .
44 replies since 3/11/2009, 17:13   3110 views
  Share  
.