Neem een willekeurig natuurlijk getal $$n$$. Vermenigvuldig alle cijfers van $$n$$ met elkaar. Blijf deze procedure herhalen met het bekomen product, totdat je slechts één cijfer overhoudt. Het aantal stappen dat daarvoor nodig is, wordt de hardnekkigheid van het getal $$n$$ genoemd. Het cijfer dat je finaal overhoudt, wordt de digitale wortel van $$n$$ genoemd.
Stel dat we bijvoorbeeld beginnen bij 327. Het product van de cijfers is $$3 \times 2 \times 7 = 42$$. Als we dit herhalen voor 42 dan krijgen we $$4 \times 2 = 8$$, waardoor de procedure dus stopt. De reeks $$327 \longrightarrow 42 \longrightarrow 8$$ stopt na 2 stappen, waardoor het getal 327 hardnekkigheid 2 en digital wortel 8 heeft.
De huidige recordhouder is 277777788888899 met een hardnekkigheid van 11. Algemeen wordt aangenomen dat 11 ook de maximale hardnekkigheid is. Men heeft in ieder geval al computerkracht ingezet om aan te tonen dat dat het geval is voor alle getallen tot en met $$10^{400}$$.
Schrijf een functie vermenigvuldiging waaraan een natuurlijk getal $$n$$ (int) moet doorgegeven worden. De functie moet het product (int) teruggeven dat men bekomt door de cijfers van $$n$$ met elkaar te vermenigvuldigen.
Schrijf een functie digitale_wortel waaraan een natuurlijk getal $$n$$ (int) moet doorgegeven worden. De functie moet de digitale wortel (int) van $$n$$ teruggeven.
Schrijf een functie hardnekkigheid waaraan een natuurlijk getal $$n$$ (int) moet doorgegeven worden. De functie moet de hardnekkigheid (int) van $$n$$ teruggeven.
Schrijf een functie hardnekkigste waaraan twee natuurlijke getallen $$a$$ en $$b$$ (int) moeten doorgegeven worden, met $$a \leq b$$. De functie moet het getal met de grootste hardnekkigheid uit het interval $$[a, b]$$ teruggeven. Als er in het interval $$[a, b]$$ meerdere getallen zijn met een maximale hardnekkigheid, dan moet het kleinste van die getallen teruggegeven worden.
>>> vermenigvuldiging(327)
42
>>> vermenigvuldiging(42)
8
>>> vermenigvuldiging(277777788888899)
4996238671872
>>> digitale_wortel(327)
8
>>> digitale_wortel(68889)
0
>>> digitale_wortel(277777788888899)
0
>>> hardnekkigheid(327)
2
>>> hardnekkigheid(8)
0
>>> hardnekkigheid(277777788888899)
11
>>> hardnekkigste(1, 100)
77
>>> hardnekkigste(100, 1000)
679
>>> hardnekkigste(1000, 10000)
6788
>>> hardnekkigste(277777788888000, 277777788889000)
277777788888899