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
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
Engleza,
8 ani în urmă
Franceza,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
8 ani în urmă
Geografie,
9 ani în urmă