Matematică, întrebare adresată de masinutaverde, 8 ani în urmă

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ăspunsuri la întrebare

Răspuns de rolandcucicea
0

#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";

}


masinutaverde: Multumesc mult!
rolandcucicea: greseala fatala a fost ca am manct o litera la iostream si dupa am observat ca ar trebui sa includ si pe 1 ca divizor (desi nu mi se pare ok)
rolandcucicea: https://ideone.com/w2NwRf
masinutaverde: la iostream corectasem eu,dar nu stiam de ce nu merge in continuare
rolandcucicea: merge ptr toate testele?
masinutaverde: da
rolandcucicea: ai inteles algoritmul?
masinutaverde: da.Multumesc!!
rolandcucicea: cu placere!! spor sa ai!
masinutaverde: :)))
Alte întrebări interesante