Divizorii unui număr. Metoda mai puțin eficientă

Enunț

Se citeşte un număr natural n. Să se scrie un algoritm care afișează toți divizorii numărului n.

Un număr natural d este divizor al lui n dacă și numai dacă n%d=0 (n se împarte exact la d sau, altfel spus, restul împărțirii lui n la d este egal cu 0).

Exemplu

Dacă n = 24, atunci algoritmul va afişa: 1 2 3 4 6 8 12 24.

Dacă n = 11, atunci algoritmul va afişa: 1 11.

Se va afișa “DA” și dacă a = 5 și b = 25.

Descrierea metodei de rezolvare

Pasul 1: Citim numărul n.
Pasul 2: Parcurgem cu d toate valorile de la 1 la n (toți posibilii divizori). 
  Pentru fiecare d verificăm dacă n este divizibil cu d.
  Dacă n este divizibil cu d, atunci d este divizor și îl afișăm.
Pasul 3: Algoritmul se termină după ce am găsit toți divizorii.

Algoritmul în limbaj pseudocod

n,d întreg
citeşte n
pentru d ← 1, n execută
| dacă (n % d = 0) atunci
| |  scrie d
| |
|

Algoritmul în limbaj de programare C/C++

/*********************************************************

divizorii unui numar 

***********************************************************/
#include <iostream>

using namespace std;

int main() {
    int n, d;

    cout << "Introduceti un numar: ";
    cin >> n;

    for (d = 1; d <= n; d++) {
        if (n % d == 0) {
            cout << d << " "; // d este un divizor
        }
    }

    cout << endl;

    return 0;
}

Observație

Acest algoritm este simplu, dar poate fi ineficient pentru numere foarte mari, deoarece parcurge fiecare posibil divizor de la 1 până la n.