Het algoritme voor het opbouwen van een Kaprekarketen werd in 1949 ontdekt door de Indische wiskundige Dattaraya Ramchandra Kaprekar. Het werd oorspronkelijk beschreven voor getallen met vier cijfers, maar kan makkelijk veralgemeend worden voor getallen met $$k$$ cijfers.
De Kaprekarketen voor een getal $$n$$ (int) wordt voorgesteld als een lijst (list) waarvan het eerste element het getal $$n$$ zelf is. Het volgende getal (int) wordt berekend als het verschil $$K(n) = n' - n''$$ tussen het getal $$n'$$ dat bestaat uit de cijfers van $$n$$ maar gesorteerd in aflopende volgorde, en het getal $$n''$$ dat bestaat uit de cijfers van $$n$$ maar gesorteerd in oplopende volgorde. Dit volgende getal wordt achteraan de lijst toegevoegd.
We blijven deze procedure herhalen om op basis van het laatste getal in de lijst telkens het volgende getal (int) te berekenen en aan de lijst toe te voegen. De procedure eindigt als het volgende getal gelijk is aan nul, gelijk is aan het vorige getal, of als het reeds in de lijst voorkomt. Een getal dat reeds in de lijst voorkwam, moet finaal niet nogmaals aan de lijst toegevoegd worden.
Schrijf een functie kaprekarketen waaraan een getal $$n \in \mathbb{N}$$ (int) moet doorgegeven worden. De functie moet de Kaprekarketen (list) voor het gegeven getal $$n$$ teruggeven.
>>> kaprekarketen(677)
[677, 99, 0]
>>> kaprekarketen(9876)
[9876, 3087, 8352, 6174]
>>> kaprekarketen(55500)
[55500, 54945, 50985, 92961, 86922, 75933, 63954, 61974, 82962]