libri-javascript-python

In questa lezione svilupperemo un algoritmo sui numeri primi in JavaScript.

Ricordiamo innanzitutto che un numero è primo quando ha due divisori, cioè 1 e se stesso.

La successione dei numeri primi comincia con 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, …

Anche in altri linguaggi di programmazione abbiamo sviluppato lo stesso algoritmo, potete guardare, se vi interessa, l’implementazione ai seguenti link:

Algoritmo sui numeri primi in linguaggio C;

Verificare se un numero è primo in linguaggio C++;

Come realizzare un algoritmo sui numeri primi in Python.

Realizziamo un algoritmo sui numeri primi in JavaScript

Verificare se un numero preso in input è primo.

Per verificare se un numero è primo occorre utilizzare un divisore che di volta in volta si incrementa di 1.

In definitiva comincio a dividere il numero preso in input, prima per 1, poi per 2, poi per 3, ecc..

Chiaramente per poter fare questo devo utilizzare un ciclo, facendo incrementare il divisore di 1, dopo ogni iterazione.

Dunque se ad esempio il numero fosse 3 allora prima lo dividerei per 1, poi per 2 e poi per 3. Contemporaneamente posso contare i divisori utilizzando una variabile apposita, ad esempio di nome conta.

Se alla fine abbiamo trovato 2 divisori, cioè 1 ed il numero stesso, in tal caso la variabile conta varrà 2, allora il numero è primo. Altrimenti il numero non è primo.

Ma possiamo fare di meglio. Possiamo considerare che il divisore si può fermare alla metà del numero stesso in quanto è scontato che dividendo un numero per un valore maggiore della sua metà si ottiene un numero decimale. Quindi possiamo contare un solo divisore per definire che un numero è primo.

Dunque ecco una possibile soluzione all’algoritmo sui numeri primi realizzato in JavaScript:


var n = prompt('Inserisci un numero: ');
while (n < 0){
   n = prompt('Inserisci un numero: ');
}
	
 var div = 1;
 var conta=0;
	
 while(conta <= 1 && div <= n/2) {
   if(n % div == 0)  {
	conta++;	
   }
   div++;
 }
	
 if (conta == 1){
   document.write('Il numero è primo ');
 }   
 else {
    document.write('Il numero non è primo ');
 }

In questo algoritmo innanzitutto abbiamo controllato che l’utente inserisca un numero positivo con un ciclo while, allo stesso modo si poteva utilizzare anche il do while.

La condizione nel while che abbiamo inserito si ferma non appena la variabile count è uguale ad 1 e il divisore è arrivato alla metà del numero.

Conclusione

Chiaramente questa è solo una possibile soluzione dell’algoritmo sui numeri primi in JavaScript, proponete pure la vostra e discutiamone nei commenti sotto.

Alcuni link utili

Indice tutorial JavaScript

Introduzione al tutorial JavaScript

Il linguaggio JavaScript

Come utilizzare JavaScript alert

Come utilizzare JavaScript confirm

Utilizzare JavaScript prompt

Variabili in JavaScript

JavaScript substring

Creare elementi nel Dom con JavaScript