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.
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
Divisori di un numero con algobuild
Algoritmi di selezione sugli angoli
Numeri amicabili con algobuild
Algoritmi di selezione sugli angoli
Numeri amicabili con algobuild