323
Un număr natural nenul se numește perfect dacă este egal cu suma divizorilor săi naturali strict mai mici decât el.
Exemplu
Pentru a=5
și b=30
, se afișează pe ecran: 28 6
.
Important
Soluţia propusă va conţine doar definiţia funcţiei cerute. Prezenţa în soluţie a altor instrucţiuni poate duce erori de compilare sau de execuţie care vor avea ca efect depunctarea soluţiei.
int sumdiv(int n){ if(n == 1) return 0; int sum = 1; for(int d = 2; d * d <= n; ++d){ if(n % d == 0) sum += d + (n / d); if(d * d == n) sum -= d; } return sum; } void perfect(int a, int b){ bool gasit = false; if(a > b) swap(a, b); for(int i = b; i >= a; --i) if(i == sumdiv(i)) cout << i << ' ', gasit = true; if(!gasit) cout << "nu exista"; }
Comentarii