Por que o número 6174 é tão interessante? Conforme definido pela Wikipedia
- Pegue qualquer número de quatro dígitos, usando pelo menos dois dígitos diferentes. (Zeros à esquerda são permitidos.)
- Organize os dígitos em ordem crescente e depois em ordem decrescente para obter dois números de quatro dígitos, adicionando zeros à esquerda, se necessário.
- Subtraia o número menor do número maior.
- Volte para a etapa 2.
O processo acima, conhecido como rotina de Kaprekar, sempre alcançará 6174 em no máximo 7 iterações. Quando 6174 for alcançado, o processo continuará produzindo-o.
Escreva um programa que execute a rotina do Kaprekar em relação a um determinado número de quatro dígitos (veja a definição acima) imprimindo cada etapa da rotina.
Regras:
- As inscrições devem ser programas completos.
- A entrada deve ser lida a partir da entrada padrão. A tubulação do eco está OK.
- A entrada deve estar na forma numérica.
- É necessário imprimir zeros à esquerda. (Veja exemplos abaixo.)
- A última linha deve dizer quantas iterações foram necessárias. A pontuação é necessária.
Exemplos:
> 2607
7620 - 0267 = 7353
7533 - 3357 = 4176
7641 - 1467 = 6174
Iterations: 3.
> 1211
2111 - 1112 = 0999
9990 - 0999 = 8991
9981 - 1899 = 8082
8820 - 0288 = 8532
8532 - 2358 = 6174
Iterations: 5.
> 6174
7641 - 1467 = 6174
Iterations: 1.
Qualquer linguagem de programação é bem vinda. Pontos extras para os esotéricos + uma pequena recompensa.
Atualização 1 : já existe uma pergunta semelhante .
Atualização 2 : Exemplo adicionado para 6174 como entrada. Obrigado a Peter Taylor pelo aviso.