Informatică, întrebare adresată de nustiuinfofrate, 8 ani în urmă

Se citeste un numar natural n si apoi n numere naturale , afisati numerele care au suma divizorilor egala cu suma divizorilor primului numar citit.
Am test azi , astept un raspuns .
Multumesc !

Răspunsuri la întrebare

Răspuns de molau
1

#include <iostream>

using namespace std;

int main()

{

   int n, sumaDiv = 0, x, sumaDivX = 0;

   cout<<"n = "; cin>>n;

   for(int d = 1; d <= n; d++) {

       if(n%d == 0)

           sumaDiv = sumaDiv + d;

   }

   for(int i = 0; i < n; i++) {

       cout<<"Al "<<i<<"-lea numar: "; cin>>x;

       for(int d = 1; d <= x; d++) {

           if(x%d == 0)

               sumaDivX = sumaDivX + d;

       }

       if(sumaDivX == sumaDiv)

           cout<<x;

   }

   return 0;

}

De specificat ca 'for'-ul care parcurge presupusii divizori ai lui n sau x si nu este cel mai eficient in problema de fata, insa este cel mai simplu de inteles.

Alte întrebări interesante