👤

Problema de pe pbinfo:Se dau două numere naturale. Să se afle dacă aceste numere sunt prietene. Numerele prietene sunt perechile de numere în care fiecare număr în parte este suma tuturor divizorilor celuilalt număr, mai puțin acesta.

Răspuns :

#include <iostream>

using namespace std;

int main() {

int nr1, nr2, suma = 0;

cin >> nr1 >> nr2;

for (int i = 1; i <= nr1 / 2; i++) {//cauta divizorii primului nr in intervalul [1 , nr1/2]

 if (nr1 % i == 0)

  suma += i;//aduna divizorii

}

if (nr2 == suma) {// daca suma divizorilo este egala cu al doilea nr

 suma = 0;//reinitializam suma

 for (int i = 1; i <= nr2 / 2; i++) {//si facem ce am facut sus dar ptr celalalt numar

  if (nr2 % i == 0)

   suma += i;

 }

 if (nr1 % suma == 0)

  cout << "sunt prietene";

 else

  cout << "nu sunttt";

}

else

 cout << "nu sunt";

}