Esercizio semplice e classico per chi inizia a programmare. Dato un numero intero in ingresso maggiore di zero, stampare a video tutti i suoi divisori. Vediamo come realizzarlo con algoritmo e codice C++.
L’algoritmo è molto semplice e ricalca analogo problema visto sul singolo divisore di un dato numero. La prima accortezza, magari non obbligatoria ai fini dello specifico dell’esercizio, è leggere un numero intero. Scegliamo un nome di variabile n e creiamo un ciclo con condizione finale per verificare che l’immissione del dato rispetti i valori consentiti maggiori di zero, altrimenti il ciclo chiede una nuova immissione. Passaggio successivo è crearci i divisori del nostro n e quale miglior modo se non di usare un loop del tipo for in cui conosciamo il numero finito di passaggi/giri e lo step incrementale di uno in uno. Nel ciclo basterà verificare se la i che fa da contatore del ciclo è un divisore con la classica funzione resto % mod e procedere a stampare se tale resto è zero. La astuzia è ciclare non da 1 fino a n, ma da 1 a n/2, porzione di numeri tra i quali può esserci un divisore.

Il codice risultante è piuttosto semplice:
#include <iostream>
using namespace std;
int main()
{
int n;
do
{
cout << "Inserisci il numero n ";
cin >> n;
}
while(n <= 0);
cout << "I divisori sono:"<< endl;
for (int i=1; i <= n/2; i++)
{
if (n % i == 0)
{
cout << i << endl;
}
}
return 0;
}
Ultima modifica 19 Gennaio 2022