👤

Un număr natural se numește perfect dacă el este egal cu suma divizorilor săi mai mici decât el. De ex
28 este un număr perfect pentru că 28=1+2+4+7+14. Să se determine toate numerele perfecte mai mici decât
un număr dat (de exemplu: 10000).
( IN C++)


Răspuns :

Salut!

Ai rezolvarea in limbaj C++ mai jos

#include <iostream>

using namespace std;

int perfect(int n)

{

int s = 0;

for (int i = 1; i <= n / 2; i++)

{

  if (n % i == 0)

  {

    s += i;

  }

}

if (s == n)

{

  return s;

}

else

 {

  return 0;

}

}

int main()

{

int n, s = 0;

cin >> n;

for (int i = 1; i <= n; i++)

{

  if (perfect(i))

  {

    cout << i << " ";

  }

}

return 0;

}