#800
Perfect
C++
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 | #54330649 | Utilizator | |
Fișier | perfect.cpp | Dimensiune | 624 B |
Data încărcării | 25 Noiembrie 2024, 22:14 | Scor / rezultat | 20 puncte |
perfect.cpp: In function 'int suma_divizori(int)': perfect.cpp:11:54: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(std::size_t divizor{2}; divizor * divizor <= n; ++divizor) ^ perfect.cpp:14:33: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if(divizor * divizor == n) ^ perfect.cpp: In function 'void perfect(int, int)': perfect.cpp:26:28: warning: narrowing conversion of 'b' from 'int' to 'std::size_t {aka unsigned int}' inside { } [-Wnarrowing] for(std::size_t index{b}; index >= a; --index) ^ perfect.cpp:26:40: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(std::size_t index{b}; index >= a; --index) ^ perfect.cpp:27:36: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if(suma_divizori(index) == index) ^
Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
---|---|---|---|---|---|---|
1 | 0 secunde | Raspuns gresit. | 20 | 0 | ||
2 | 0 secunde | Raspuns gresit. | 20 | 0 | ||
3 | 0 secunde | OK. | 20 | 20 | ||
4 | 0 secunde | Raspuns gresit. | 20 | 0 | ||
5 | 0 secunde | Raspuns gresit. | 20 | 0 | ||
Punctaj total | 20 |
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ă.