Algorytmy, C++, Matura z informatyki - nauka i materiały.

Liczby doskonałe C++

Liczby doskonałe

Liczby doskonałe to takie liczby, które są równe sumie wszystkich ich podzielników poza nimi samymi. Liczby doskonałe występują relatywnie rzadko.

Pierwszą z nich jest szóstka:

6=3+2+1.

Jak widzimy dzielniki szóstki po dodaniu do siebie wyniosą właśnie sześć.

Kolejne liczby doskonałe:

28=14+7+4+2+1

496=248+124+62+31+16+8+4+2+1

8128=4064+2032+1016+508+254+127+64+32+16+8+4+2+1

 

Schemat blokowy algorytmu, którego zadaniem jest  sprawdzenie, czy dana liczba jest liczbą doskonałą, prezentuje się następująco:

 

Liczby doskonałe

 

Oto implementacja tego algorytmu w języku C++:

 

 

Liczby doskonałe drugiego rodzaju

Liczbami doskonałymi drugiego rodzaju (bądź też stopnia, czy rzędu) nazywamy takie liczby, które są równe iloczynowi ich podzielników mniejszych od niej samej.

 

Przykłady:

 

8=4*2*1

10=5*2*1

15=5*3*1

5042=2521*2*1

 

Liczby pierwsze drugiego stopnia pojawiają się częściej, niż te stopnia pierwszego. Oto algorytm dokonujący sprawdzenia, czy liczba jest doskonałą drugiego rzędu:

 

 

Tak natomiast wygląda moja wersja programu, wykorzystującego ten algorytm:

 

 

 

Ciekawostka -> Szóstka bywa czasami nazywana liczbą najdoskonalszą, ponieważ zarówno suma, jak i iloczyn jej dzielników wynosi 6.

 

Warto przeczytać o:

 

 

Dodaj komentarz