Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Numeri Primi

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    336

    Numeri Primi

    Salve, stavo cercando di comprendere questo codice java preso da internet:

    <html>
    <body>


    <form name="casella">
    <input type="text" size="20" name="T1">
    </form>

    <script language="javascript">

    do {
    var scelta = menu();

    switch (scelta) {

    case '0':
    break;

    case '1':
    var numero = prompt("inserisci numero da verificare","");
    document.write("" + numero + ": ");

    if(primo(numero) == false)
    document.write("numero NON primo" + "
    ");
    else
    document.write("numero primo!!!" + "
    ");

    break;

    case '2':
    var valore = prompt("inserisci valore massimo","");
    valore = parseInt(valore);
    document.write(""+ "max " + valore + ": ");

    for(i = 2; i != valore; i++) {
    if(primo(i) == true)
    document.write(i + " ")
    }

    document.write("
    ");
    break;

    default:
    alert("SCELTA ERRATA");
    break;
    }

    } while(scelta != '0');


    //funzione utilizzata per deteminare se un numero è primo
    //il numero viene passato come parametro
    //restituisce true se il numero è primo, altrimenti false

    function primo(numprimo) {

    var count = 2;
    numprimo = parseInt(numprimo);

    do {

    if(numprimo%count == 0) cosa è il simbolo %
    return false;

    count++;

    } while(count <= numprimo/2);
    return true;
    }


    function menu() {
    alert("\n0. termina\n1. inserito un numero stabilisce se e\
    ' primo\n2. trova tutti i numeri primi minori di un numero inserito\n");

    var sceltamenu=prompt("fai la tua scelta (0,1 o 2)","");
    return sceltamenu;
    }



    </script>
    </body>
    </htmL>

    ------------------------------------------------------------------------
    Il codice, in poche parole, indica di fare una scelta: 0 per terminare, 1 per inserire un numero e sapere se è primo o no, 2 per trovare tutti i numeri primi inferiori al numero inserito.

    Il codice è tutto chiaro
    Mi è, invece, difficile capire la function primo(numeroprimo). Qualcuno mi sa dire come opera tale funzione

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    dato un numero (n)
    quella funzione controlla il resto della divisione tra n e tutti i numeri che vanno da 2 a n/2

    % è il resto della divisione


    un algoritmo poco performante comunque
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    336
    In poche parole si incrementa count da due in poi. Poi si divide numeroprimo per count e si controlla il resto. Se il resto è zero vuol dire che non si tratta di un numero primo se il resto è diverso da zero si incrementa count e si continua fino a che count è <= numeroprimo/2, nel qual caso il numero è un numero primo.
    Come a dire 11/2=5,5
    Il resto è diverso da 0
    quindi divido per 3 e poi per 4 e poi per 5 e mi fermo poichè successivamente count supera numeroprimo/2. Poichè il resto di tutte queste divisioni è <> da zero 11 sarà primo.

    9 invece lo divido per due e mi da resto. Così incremento count di uno (3<9/2) e divido numero primo per count. Il resto mi da zero, quindi è primo.

    E' giusto il ragionamento?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.