👤

Un număr natural nenul se numeşte sPar dacă atât el, cât și suma divizorilor săi proprii
(divizori diferiţi de 1 şi de el însuși), sunt numere pare.
Subprogramul sPar are un singur parametru, n, prin care primeşte un număr natural
(n∈[1,109]). Subprogramul returnează cel mai mic număr sPar, strict mai mare decât n.
Scrieţi definiţia completă a subprogramului.
Exemplu: dacă n=95, atunci subprogramul returnează 98 (atât 98, cât și
72=2+7+14+49, sunt numere pare). Subprogramul in c++, va rog!


Răspuns :

int sPar(int n){
    int s,i;
    if(n%2)n++;
    else n+=2;
    while(1){
        s=0;
        for(i=2;i<=n/2;i++)
            if(!(n%i))s+=i;
        if(!(s%2))return n;
        n+=2;
    }
}