In deze opgave wordt van een natuurlijk getal de NIO-limiet bepaald. Dat gaat als volgt:
Van een natuurlijk getal wordt eerst het NIO-nummer berekend. Dat NIO-nummer krijg je door de cijfers uit het getal op een gewogen wijze bij elkaar op te tellen.
Namelijk: 1 maal het eerste cijfer, 2 maal het tweede cijfer, 3 maal het derde cijfer, etc.
Er geldt bijvoorbeeld dat het NIO-nummer van 2025 gelijk is aan 1 · 2 + 2 · 0 + 3 · 2 + 4 · 5 = 28.
Dit NIO-nummer is opnieuw een natuurlijk getal en je kan hiervan dus opnieuw het NIO-nummer bepalen.
Dit kun je herhalen tot je steeds hetzelfde getal krijgt. Dat getal noemt men de NIO-limiet van het startgetal.
Zo geldt bijvoorbeeld:
Het NIO-nummer van 11 is 1 · 1 + 2 · 1 = 3.
Als je nu telkens opnieuw het NIO-nummer gaat bepalen dan blijf dit 3.
Er geldt dus dat 3 de NIO-limiet van 2025 is.
Schrijf een functie nio_nummer(getal) dat van een willekeurig natuurlijk getal het NIO-nummer retourneert.
Schrijf daarna een functie nio_limiet(getal) dat de NIO-limiet van het getal bepaalt. Je gebruikt hierin natuurlijk de vorige functie nio_nummer(getal).
>>> nio_nummer(2025)
28
>>> nio_nummer(28)
18
>>> nio_nummer(18)
17
en
>>> nio_limiet(2025)
3
Bron
Nederlandse Informatica Olympiade 2024-2025