Drop links or images here to add them to the editor.

Het getal 6174 is bekend als de constante van Kaprekar, genoemd naar de Indiase wiskundige Shri Dattathreya Ramachandra Kaprekar (1905 - 1988). De eigenschap die dit getal bezit wordt aangegeven door de volgende stappen te doorlopen:

Neem een willekeurig natuurlijk getal van 4 cijfers. Zet de cijfers in oplopende en in aflopende volgorde, zodat twee getallen van 4 cijfers worden verkregen. Trek het kleinste van het grootste getal af. Keer terug naar stap 2. Bij deze procedure wordt in maximaal zeven stappen het getal 6174 verkregen, en daarna komen er geen nieuwe getallen meer bij. De procedure eindigt vanwege 7641 − 1467 = 6174. Neem bijvoorbeeld het startgetal 5342.

5432 - 2345 = 3087
8730 - 0378 = 8352
8532 - 2358 = 6174

Als na de aftrekking een getal van minder dan 4 cijfers ontstaat, moet(en) daar nul(len) voor gezet worden opdat er weer een getal van 4 cijfers ontstaat. Dus 999 wordt geschreven als 0999. Neem bijvoorbeeld het startgetal 1000:

1000 - 0001 = 0999
9990 - 0999 = 8991
9981 - 1899 = 8082
8820 - 0288 = 8532
8532 - 2358 = 6174

De enige getallen van 4 cijfers waarvoor deze procedure niet werkt zijn herhaalde cijfers zoals 3333, die na één iteratie de waarde 0 geven.

Opmerking

Deze oefening behoort tot de reeks “Werken met strings”. Gebruik daarom enkel de Python-tools gezien tot en met deze reeks.

Opgave

Vraag aan de gebruiker om een getal van 4 cijfers in te geven, waarvan de cijfers niet allemaal gelijk zijn. Vertrekkend van dit getal doorloopt je programma de stappen hierboven uitgelegd, totdat het getal 6174 wordt bereikt. Je houdt via een teller bij hoeveel stappen er nodig zijn en print per doorloop de volgende tekst (zie ook het voorbeeld):

#: startgetal -> aflopend - oplopend = resultaat (aangevuld met nullen)

Als je als startgetal 6174 ingeeft, dan doorloop je 1x de logica en drukt het resultaat af om aan te tonen dat 6174 inderdaad resulteert in 6174.

Voorbeelden

Invoer
1000
Uitvoer
1: 1000 -> 1000 - 0001 = 0999
2: 0999 -> 9990 - 0999 = 8991
3: 8991 -> 9981 - 1899 = 8082
4: 8082 -> 8820 - 0288 = 8532
5: 8532 -> 8532 - 2358 = 6174
Invoer
6174
Uitvoer
1: 6174 -> 7641 - 1467 = 6174