# PBinfo #20 – suma-divizorilor-primi – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: andrei

## Enunț

Cerinţa
Să se scrie o funcție C++ care să determine suma divizorilor primi ai 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_prim
funcția va avea doi parametri, reprezentând numărul pentru care se calculează suma divizorilor, respectiv valoarea calculată
numărul pentru care se calculează suma divizorilor primi va fi mai mare decât 1 și mai mic decât 2.000.000.000

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.

## Cod sursă C++

```cpp
void sum_div_prim(int nr, int& suma) {
    suma = 0;
    int temp = 2;
    while (nr > 1) {
        if (nr % temp == 0)
            suma = suma + temp;
        while (nr % temp == 0)
            nr = nr / temp;
        temp++;
        if (nr > 1 && temp * temp > nr) {
            suma = suma + nr;
            nr = 1; 
        }
    }
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/20)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/20/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-20/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
