Un număr natural nenul, n, se numește număr abundent dacă S(n)/n>S(k)/k, pentru orice număr natural nenul k (k≤n−1), unde s-a notat cu S(i) suma divizorilor pozitivi ai numărului natural nenul i.
Exemplu: pentru n=6, subprogramul returnează valoarea 1 (S(6)/6=2, iar cel mai mare raport obținut pentru valori strict mai mici decât 6 este S(4)/4=1.75), iar pentru n=7 sau n=8, subprogramul returnează valoarea 0 (S(7)/7=1.14, S(8)/8=1.87).
Identificatorii utilizați în rezolvări trebuie să respecte precizările din enunț (bold), iar în lipsa unor precizări explicite, notațiile trebuie să corespundă cu semnificațiile asociate acestora (eventual în formă prescurtată). Datele de intrare se consideră corecte, validarea lor nefiind necesară.
Cerința
10 puncte
Subprogramul abundent are un singur parametru, n, prin care primește un număr natural (n∈[2,10⁶]). Subprogramul returnează valoarea 1, dacă n este un număr abundent, sau valoarea 0, în caz contrar.
Scrieți definiția completă a subprogramului. (10p.)
Arată baremul
SUBIECTUL al III-lea, 1.
Pentru subprogram corect - 10p.
- antet al subprogramului, conform cerinței (*) - 2p.
- proprietate verificată, conform cerinței (**) - 6p.
- instrucțiune/instrucțiuni de returnare a rezultatului, conform cerinței - 1p.
- variabile locale declarate conform cerinței, corectitudine globală a subprogramului¹⁾ - 1p.
(*) Se acordă câte 1p. pentru fiecare aspect al antetului (structură, parametru de intrare) conform cerinței.
(**) Se acordă câte 1p. pentru fiecare aspect specific (identificare a unui divizor al unui număr, algoritm de bază pentru calculul sumei unei serii de valori, divizori suport însumați, împărțire reală pentru raport, algoritm principial corect de verificare a unei proprietăți, numere suport verificate) conform cerinței.
¹⁾ Corectitudinea globală vizează structura, sintaxa, alte aspecte neprecizate în barem.