libri-javascript-python

Oggi impareremo a creare un algoritmo per trovare i divisori di un numero con Algobuild.

Quindi mi serviranno queste forme:

Ellisse per l’inizio e per la fine;

Rettangolo per effettuare le operazioni e per l’assegnamento;

Parallelogramma per inserire l’input, ovvero in questo caso per prendere il numero e per visualizzare in output il risultato;

Rombo per effettuare un test che può essere vero o falso.


Algoritmo per trovare i divisori di un numero con Algobuild

Per trovare i divisori di un numero posso dividere per tutti i numeri fino ad arrivare al numero stesso.

Ma ci sono delle operazioni che potrei risparmiare per guadagnare velocità di calcolo. Infatti potrei dividere partendo da 1 fino ad arrivare alla metà del numero stesso.

Se ad esempio consideriamo 10 i suoi divisori sono 1,2,5,10.

Quindi tra il 5 e il 10 ci sono i numeri 6,7,8,9. Bene se divido 10 per questi numeri sicuramente ottengono un numero non intero.

Allora posso tralasciarli.

Iniziamo a costruire il nostro algoritmo per calcolare i divisori di un numero preso in input.

Prendo in input il numero e lo memorizzo in una variabile. Dopo calcolo il divisore con la seguente formula:

divisore=floor(numero/2);

In questo modo arrotondo per difetto il numero diviso due.

Ad esempio se come numero metto 10 allora divisore sarà uguale a 5; se inserisco 11 il divisore sarà sempre uguale a 5.

Dopo, con un ciclo while, finché il divisore è maggiore di 1, partendo da divisore=floor(numero/2) vado a trovare i resti della divisione.

Se il resto della divisione è uguale a zero allora è un divisore. Per calcolare il resto uso l’operatore modulo ( % ).

Ecco il diagramma di flusso per trovare i divisori di un numero con Algobuild.

divisori algobuild

Si poteva anche partire al contrario, dividendo per 1 fino ad arrivare a numero/2.

Chiaramente questo è solo una possibile soluzione all’algoritmo per trovare i divisori di un numero con Algobuild.

Alcuni link utili

Indice argomenti diagramma a blocchi

Numeri primi da 1 a 100

Array con algobuild

Divisori di un numero con algobuild

Algoritmi di selezione sugli angoli

Algoritmi di selezione

Triangoli con algobuild

Fibonacci con algobuild

Serie buffa con algobuild

Numeri amicabili con algobuild

Numeri perfetti con algobuild

Massimo fra tre numeri

Minore fra tre numeri

Algoritmi di selezione sugli angoli

Algoritmi di selezione

Triangoli con algobuild

Fibonacci con algobuild

Serie buffa con algobuild

Numeri amicabili con algobuild

Numeri perfetti con algobuild

Massimo fra tre numeri

Minore fra tre numeri