Verschillende oude culturen hielden zich bezig met het zoeken naar verbanden tussen een getal en de som van zijn echte delers. Aan getallen met speciale eigenschappen werd dan ook vaak een mystieke interpretatie gegeven. Zo worden positieve gehele getallen die gelijk zijn aan de som van hun echte delers perfecte getallen genoemd. Hierbij wordt 1 als een echte deler van elk getal beschouwd, en wordt een getal niet als een echte deler van zichzelf aanzien. Zo kenden de oude Grieken reeds de eerste vier perfecte getallen (zie onderstaande tabel), en zijn er momenteel 44 perfecte getallen gekend.

perfect getal som van delers
6 $$1 + 2 + 3$$
28 $$1 + 2 + 4 + 7 + 14$$
496 $$1 + 2 + 4 + 8 + 16 + 31 + 62 + 124 + 248$$
8128 $$1 + 2 + 4 + 8 + 16 + 32 + 64 + 127 + 254 + 508 + 1016 + 2032 + 4064$$

Positieve gehele getallen waarvan de som van de echte delers kleiner is dan het getal zelf worden gebrekkige getallen genoemd, en positieve gehele getallen waarvan de som van de echte delers groter is dan het getal zelf worden overvloedige getallen genoemd.

Opgave

  1. Schrijf een functie som_delers, die voor een gegeven positief geheel getal (dat als parameter aan de functie meegegeven wordt) de som van de echte delers van het getal teruggeeft. Zo moet de functie voor de waarde $$9$$ het resultaat $$4$$ (= $$1 + 3$$) teruggeven, en resulteert de waarde $$10$$ in de som $$8$$ (= $$1 + 2 + 5$$).

    def som_delers(n)

  2. Gebruik de functie som_delers om een functie getalsoort te schrijven, die voor een gegeven positief geheel getal een string teruggeeft die aangeeft om welk soort getal het gaat: perfect, gebrekkig of overvloedig. Zo moet de functie voor de waarde $$28$$ de tekenreeks perfect als resultaat teruggeven.

    def getalsoort(n)

Voorbeeld

>>> som_delers(28)
28
>>> getalsoort(28)
'perfect'
>>> som_delers(29)
1
>>> getalsoort(29)
'gebrekkig'
>>> som_delers(30)
42
>>> getalsoort(30)
'overvloedig'