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
.
Se consider
ă
subprogramul
perfect
, cu doi parametri,
a
ș
i
b
, prin care prime
ş
te câte un
num
ă
r natural (
2
≤
a
≤
10
9
). Subprogramul afi
ș
ea
z
ă
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
.
Scrie
ţ
i defini
ţ
ia complet
ă
a subprogramului.
Exemplu:
pentru
a=5
ș
i
b=30
, se afi
ș
eaz
ă
pe ecran:
28 6
Răspunsuri la întrebare
Răspuns de
0
void perfect(int a, int b)
{
int d, x, s, ct = 0;
for(x = b; x >= a; x --)
{
s = 0;
for(d = 1; d * d < x; d ++)
if(x % d == 0)
s = s + d + x / d;
if(d * d == x) s = s + d;
if(s - x == x)
{
cout << x << " ";
ct ++;
}
}
if(ct == 0) cout<< "nu exista";
return;
}
Alte întrebări interesante
Geografie,
8 ani în urmă
Istorie,
8 ani în urmă
Fizică,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Geografie,
9 ani în urmă