Se poate trece la capitolul următor cu tasta ► și se poate reveni la un capitol precedent cu tasta ◄

Cum determinăm dacă un număr este perfect


<

C
a
p
i
t
o
l
u
l

a
n
t
e
r
i
o
r

<

1. Algoritm

Determinare număr perfect în Pascal

2. Ce este un număr perfect?

Un astfel de număr este acela care este egal cu suma divizorilor săi, inclusiv divizorul 1. Să luăm un exemplu: 6. Divizorii săi sunt 1, 2 și 3. Însumați sunt egali cu ... 6.

Trecând dincolo de simbolistica acestor numere, ele nu sunt prea des întâlnite. Primele sunt 6, 28, 496, 8128, 33 550 336 și de aici numere devin foarte mari. Da, al cincilea număr perfect în ordine crescătoare este 33 de milioane 550 de mii 336.

3. Algoritm

Lăsând la o parte faptul că nu au vreun folos real, algoritmul de aflare a lor este simplu. Se iau valorile de la 1 la jumătatea numărului introdus de la tastatură și de fiecare dată când restul împărțirii este 0, această valoare este adăugată la suma inițială.

De ce? Pentru a afla divizorii unui număr, trebuie să aflăm numerele la care se împarte astfel ca restul să fie 0. Avem operația modulo, dată în Pascal de cuvântul rezervat mod. Folosind-o vedem dacă împărțirea numărului nostru este fără rest, astfel știm că am dat de un divizor al numărului dat spre verificare.

De îndată ce determinăm un divizor, îl adunăm la suma inițială.

Parcurgem toate numerele doar până jumătatea sa pentru că nici un număr nu se va împărți fără rest la numere mai mari decât această valoare. Numărul 16 nu se împarte niciodată exact la 9, 10 sau la 12. La fel e pentru toate numerele, așa că nu are rost să căutăm divizori mai mari.

După cum zicea. o mulțime de numere nu sunt „perfecte” așa că singura utilitate e să-l încercați pentru valoarea 33 550 336. Va dura ceva timp să determine dacă este sau nu un număr perfect. Dar este.


>

C
a
p
i
t
o
l
u
l

u
r
m
ă
t
o
r

>

Ți-a fost de ajutor ce am scris aici?
Hei, mersi de răspuns.