#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 | #64338422 | Utilizator | |
| Fișier | perfect.cpp | Dimensiune | 444 B |
| Data încărcării | 30 Aprilie 2026, 12:44 | Scor/rezultat | Eroare de compilare |
perfect.cpp: In function ‘bool perfect(int)’: perfect.cpp:10:28: warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’ [-Wsign-compare] 10 | for(unsigned int i=1; i<a; i++) | ~^~ perfect.cpp:11:9: error: ‘s’ was not declared in this scope 11 | s+=i; | ^ perfect.cpp:13:8: error: ‘s’ was not declared in this scope 13 | if(s<a) | ^ perfect.cpp: In function ‘void perfectAfisare(int, int)’: perfect.cpp:21:28: warning: comparison of integer expressions of different signedness: ‘unsigned int’ and ‘int’ [-Wsign-compare] 21 | for(unsigned int i=b; i>=a; i--) | ~^~~ perfect.cpp: At global scope: perfect.cpp:38:5: error: redefinition of ‘int main()’ 38 | int main(){ | ^~~~ perfect.cpp:26:5: note: ‘int main()’ previously defined here 26 | int main() | ^~~~ perfect.cpp: In function ‘int main()’: perfect.cpp:41:20: error: too many arguments to function ‘bool perfect(int)’ 41 | perfect(x,y); | ~~~~~~~^~~~~ perfect.cpp:8:6: note: declared here 8 | bool perfect(int a) | ^~~~~~~ perfect.cpp: In function ‘bool perfect(int)’: perfect.cpp:17:1: warning: control reaches end of non-void function [-Wreturn-type] 17 | } | ^
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ă.