gelukkige getallen
Gelukkige getallen

Ook getallen kunnen gelukkig zijn, zie https://nl.wikipedia.org/wiki/Gelukkig_getal1.

Om te bepalen of een positief geheel getal een gelukkig getal is, wordt volgende controle gedaan:

Als voorbeeld tonen we aan dat 7 een gelukkig getal is:

de som van de kwadraten van de cijfers (7) van het getal 7 is 49
de som van de kwadraten van de cijfers (4 en 9) van het getal 49 is 97
de som van de kwadraten van de cijfers (9 en 7) van het getal 97 is 130
de som van de kwadraten van de cijfers (1, 3 en 0) van het getal 130 is 10
de som van de kwadraten van de cijfers (1 en 0) van het getal 10 is 1

Na 5 cyclussen bekom je het getal 1, en kan je besluiten dat 7 een gelukkig getal is.

En ongelukkige getallen?

Voor ongelukkige getallen zal je echter nooit uitkomen op 1 en krijg je dus een 'eindeloze reeks'. Volg de berekening voor het ongelukkig getal 4:

de som van de kwadraten van de cijfers van het getal 4 is 16
de som van de kwadraten van de cijfers van het getal 16 is 37
de som van de kwadraten van de cijfers van het getal 37 is 58
de som van de kwadraten van de cijfers van het getal 58 is 89
de som van de kwadraten van de cijfers van het getal 89 is 145
de som van de kwadraten van de cijfers van het getal 145 is 42
de som van de kwadraten van de cijfers van het getal 42 is 20
de som van de kwadraten van de cijfers van het getal 20 is 4
Je komt terug het getal 4 tegen! Het is dus zeker dat er geen andere getallen kunnen bekomen worden, en je nooit zal uitkomen op 1. Het getal 4 is dus ongelukkig.

Voorlopig besluit

Vooral de derde situatie is niet gemakkelijk te programmeren (zonder gebruik van complexere data). De figuur hieronder toont de opeenvolgende sommen voor alle ongelukkige getallen kleiner dan 100.
unhappy numbers
Unhappy numbers (https://www.stem.org.uk/news-and-views/opinions/how-find-happy-number)
Voor elk ongelukkig getal kleiner dan 100 zal het getal 4 voorkomen als een som van kwadraten

Ook voor grotere getallen werd bewezen dat je altijd, na een eindig aantal stappen, het getal 1 of 4 tegenkomt. Gebruik dit om het algoritme te vereenvoudigen!

Opdracht

Lees en strikt positief geheel getal in en schrijf uit of dit een gelukkig/ongelukkig getal is.

Invoer

Lees een geheel getal in, bij voorkeur voorafgegaan van tekst. Controleer of dit ingegeven getal wel strikt positief is. Er wordt een nieuwe input gevraagd totdat de invoer strikt positief is.
Er worden enkel gehele getallen ingegeven, je moet dus enkel controleren of het ook een strikt positief getal is.

Uitvoer

Eén van volgende teksten: "[getal] is gelukkig", "[getal] is ongelukkig", hierbij wordt [getal] vervangen door het gecontroleerde getal.

Voorbeeld 1

Invoer:

geef een strikt positief getal in:0
geef een strikt positief getal in:-5
geef een strikt positief getal in:7

Uitvoer:

7 is gelukkig

Voorbeeld 2

Invoer:

geef een strikt positief getal in:4

Uitvoer:

4 is ongelukkig