Un număr natural nenul se numește perfect dacă este egal cu suma divizorilor săi naturali strict mai mici decât el.
Exemplu: 28
este număr perfect pentru că 28=1+2+4+7+14
.
Cerinţa
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
.
Restricţii şi precizări
- numele funcției va fi
perfect
și va avea exact doi parametri,a
șib
, cu semnificația de mai sus 1 ≤ a ≤ b ≤10000
Exemplu
Pentru a=5
și b=30
, se afișează pe ecran: 28 6
.
Important
Soluţia propusă va conţine doar definiţia funcţiei cerute. Prezenţa în soluţie a altor instrucţiuni poate duce erori de compilare sau de execuţie care vor avea ca efect depunctarea soluţiei.
Cum e corect?
cout < "As la info";
cout << "As la info";
cout >> "As la info";
Felicitări! Poți mai mult?
Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.
Greșit, dar nu-i bai!
Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.
Rezolvare
Iată rezolvarea de 100 de puncte pentru problema Perfect :
int sumdiv(int n)
{
int s = 0;
for(int d = 1 ; d * d <= n ; d ++)
if(n % d == 0)
{
s += d;
if(d * d < n)
s += n / d;
}
return s;
}
void perfect (int x, int y)
{
int gasit = false;
for(int i = y ; i >= x ; i --)
if(sumdiv(i) == 2 * i)
cout << i << " ", gasit = 1;
if(! gasit)
cout << "nu exista";
}
Atenție
Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa .
Rezolvarea problemei #800 Perfect
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #800 Perfect de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.
Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!