Calcoliamo i numeri primi da 1 a 100 con Algobuild.

Supponiamo quindi di voler chiedere al programma di calcolare i numeri primi in questo intervallo e di visualizzarli.

Per trovare i numeri primi da 1 a 100 dobbiamo controllare se ciascun numero di questo intervallo abbia dei divisori oltre 1 e se stesso.

Se non si trovano altri divisori allora il numero è primo, altrimenti non lo è.

Facciamo un esempio: 2 ha come divisore 1 e 2, dunque è primo.

E così troviamo gli altri, pertanto i numeri primi da 1 a 100 sono:

Banner Pubblicitario

2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97.


Calcolo dei numeri primi da 1 a 100 con Algobuild

Per realizzare l’algoritmo servono le seguenti forme:

Ellisse per l’inizio e per la fine;

Parallelogramma in questo caso solo per visualizzare l’output;

Rettangolo per inizializzare le variabili e incrementarle;

Rombo per effettuare un test che può essere vero o falso e per la struttura ciclica. In questo caso abbiamo due cicli e due if.

Bene consideriamo adesso i numeri a partire da 2 fino al numero 100 compreso (potremmo fare a meno di considerare 100 perchè già sappiamo che non è un numero primo).

Banner pubblicitario

Ciascun numero verrà diviso per numeri che inizieranno da 2 e termineranno fino ad n/2.

Perché? Partiamo a dividere da 2 perché sappiamo già che tutti i numeri sono divisibili per 1. Arriviamo ad n/2 perché sappiamo anche che dividere un numero per un valore maggiore della sua metà mi darà sempre un numero con la virgola. Quindi ecco che basta restringere questo intervallo per avere maggiore velocità di elaborazione.

Dunque ecco il diagramma di flusso che rappresenta l’algoritmo per il calcolo dei numeri primi da 1 a 100.

diagramma di flusso numeri primi

Nella versione non ottimizzata potremmo mettere semplicemente div<num e togliere anche conta<2.

Questo è solo un esempio di implementazione del diagramma di flusso per il calcolo dei numeri primi da 1 a 100.

Provate anche a variare l’algoritmo partendo da 1, io tra non molto pubblicherò la soluzione.

Un’altra possibile variazione potrebbe essere quella di chiedere in input un intervallo di numeri che l’utente dovrà inserire. Dopo quindi si calcolano i numeri primi tra l’intervallo preso in input. Ovviamente in questo caso occorrono i controlli dell’input.

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