👤

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.
Va rog si explicatii. e luata de pe pbinfo


Răspuns :

Ar trebui sa iti dea 100 de puncte.

long sum_div_prim(long long int n,int &p){   
     int i,s=0;
    for(i=2;i*i<=n;i++)
        if(n%i==0)
       {
            s+=i;
        while(n%i==0)
            n/=i;
       }
    p=s;
    return p;
}