#800
Un număr natural nenul se numește perfect dacă este egal cu suma divizorilor săi naturali strict mai mici decât el.
Să se scrie o funcție C++ care, pentru doi parametri, a și b, afișează pe ecran, separate prin câte un spațiu, în ordine descrescătoare, toate numerele perfecte din intervalul [a,b]. Dacă în interval nu există astfel de numere, subprogramul afișează pe ecran mesajul nu exista.
Variante Bacalaureat 2014
| Problema | Perfect | Operații I/O |
tastatură/ecran
|
|---|---|---|---|
| Limita timp | 0.1 secunde | Limita memorie |
Total: 64 MB
/
Stivă 8 MB
|
| Id soluție | #64338389 | Utilizator | |
| Fișier | perfect.cpp | Dimensiune | 280 B |
| Data încărcării | 30 Aprilie 2026, 12:43 | Scor/rezultat | Eroare de compilare |
perfect.cpp: In function ‘bool perfect(int)’: perfect.cpp:6:28: warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’ [-Wsign-compare] 6 | for(unsigned int i=1; i<a; i++) | ~^~ perfect.cpp:7:9: error: ‘s’ was not declared in this scope 7 | s+=i; | ^ perfect.cpp:9:8: error: ‘s’ was not declared in this scope 9 | if(s<a) | ^ perfect.cpp: In function ‘void perfectAfisare(int, int)’: perfect.cpp:17:28: warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’ [-Wsign-compare] 17 | for(unsigned int i=b; i>=a; i--) | ~^~~ perfect.cpp: In function ‘int main()’: perfect.cpp:25:20: error: too many arguments to function ‘bool perfect(int)’ 25 | perfect(x,y); | ~~~~~~~^~~~~ perfect.cpp:4:6: note: declared here 4 | bool perfect(int a) | ^~~~~~~ perfect.cpp: In function ‘bool perfect(int)’: perfect.cpp:13:1: warning: control reaches end of non-void function [-Wreturn-type] 13 | } | ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Perfect face parte din a doua categorie. Pentru aceste probleme se folosește un program suport, furnizat de propunătorul problemei. Soluția propusă de tine va fi evaluată astfel:
Suma punctajelor acordate pe testele utilizate pentru verificare este 100. Astfel, soluția ta poate obține cel mult 100 de puncte, caz în care se poate considera corectă.