fbpx

Problema #17 – Suma divizorilor 2 – Rezolvari PBInfo

de Mihai-Alexandru

Cerinţa

Să se scrie o funcție C++ care să determine suma divizorilor unui număr natural transmis ca parametru. Funcția întoarce rezultatul prin intermediul unui parametru de ieşire.

Restricţii şi precizări

  • numele funcției va fi sum_div
  • funcția va avea doi parametri, reprezentând numărul pentru care se calculează suma divizorilor, respectiv valoarea calculată
  • valorile celor doi parametri vor fi numere naturale nenule mai mici decât 2000000000

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.

void sum_div(int n, int& sum){
    sum = 0;
    for(int d = 1; d * d <= n; ++d){
        if(n % d == 0)
            sum += d + (n / d);
        if(d * d == n)
            sum -= d;
    }
}
Comentarii

S-ar putea sa iti placa