Informatică, întrebare adresată de mozaic, 9 ani în urmă

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!


artur99: Vereeeeeeeeeeee, asta nu era la bacu nostru? =))
artur99: Stai să caut ss-ul :)))))
artur99: noooo waaay, am șters conversația :(
artur99: cred... nu cred că o mai găsesc
AntiEaglesDavids: :))))))))))))))))))))) asta e de la simulare
artur99: am zis eu! :))

Răspunsuri la întrebare

Răspuns de artur99
6
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;
    }
}

AntiEaglesDavids: easy peasy
artur99: Bine, măcar, că nu a fost și la asta cu vectori, vere =)) că mă trezeam că mai făceam vreun vector de 1kkk spații :))))
AntiEaglesDavids: :))))))))
mozaic: ce inseamna asta (!(s%2)) ?
artur99: Păi s%2 ia restul lui s împărțit la 2... deci dacă e par dă 0... și cu un ! în față se inversează și dă 1
Alte întrebări interesante