fbpx

Problema #16 – Suma divizorilor – 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 va returna rezultatul.

Restricţii şi precizări

  • numele funcției va fi sum_div
  • funcția va avea un singur parametru, cu valoarea mai mică decât 2000000000, reprezentând numărul pentru care se calculează suma divizorilor
  • suma divizorilor parametrului va fi returnată de funcție

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 sum_div(int n){
    int sum = 0;
    for(int d = 1; d * d <= n; ++d){
        if(n % d == 0){
            sum += n / d;
            sum += d;
        }
        if(d * d == n)
            sum -= d;
    }
    return sum;
}
Comentarii

S-ar putea sa iti placa