Să se scrie algoritmul prin care se determină toate numerele naturale perfecte mai mici decât un număr n introdus de la tastatură. Un număr natural se numeşte număr perfect dacă este egal cu suma divizorilor săi, din care se exclude divizorul egal cu numărul însuşi. Exemplu: 6=1+2+3; 28=1+2+4+7+14. 2
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
for (int i = 1; i < n; i++) {
int sum = 0;
for (int j = 1; j < i; j++) {
if (i % j == 0) {
sum += j;
}
}
if (sum == i) {
cout << i << endl;
}
}
return 0;
}
- Inițializăm variabila sum cu valoarea 0.
- Parcurgem toate numerele de la 1 până la n-1.
- Pentru fiecare număr, verificăm dacă este divizor al lui n. Dacă este, adăugăm numărul la sum.
- După ce am parcurs toate numerele, verificăm dacă sum este egal cu n. Dacă este, afișăm numărul.