Задача Преобразование Капрекара

Файл входного файла: kaprekar.in
Файл выходного файла: kaprekar.out
Ограничение по памяти: 64 MB
Ограничение по времени: 2 s

Описание

Индийский математик Д. Р. Капрекар известен своими работами по теории чисел. Одна из его работ посвящена так называемому преобразованию Капрекара. Рассмотрим следующую операцию. Пусть задано число x. Пусть M — наибольшее число, которое можно получить из x перестановкой его цифр, а m — наименьшее число (это число может содержать ведущие нули). Обозначим как K(x) разность M − m, дополненную при необходимости ведущими нулями так, чтобы чис ло цифр в ней было равно числу цифр в x. Например, K(100) = 100 − 001 = 099, K(2414) = 4421 − 1244 = 3177. Капрекар доказал, что если начать с некоторого четырехзначного числа x, в котором не все цифры равны между собой, и последовательно применять к нему эту операцию (вычислять K(x), K(K(x)), . . . ), то рано или поздно получится число 6174. Для него верно равенство K(6174) = 7641 − 1467 = 6174, поэтому на нем процесс зациклится. Ваша задача состоит в том, чтобы написать программу, вычисляющую K(x) по числу x.

Формат входных данных

Входной файл содержит целое число без ведущих нулей x (1 ≤ x ≤ 10 9 ).

Формат выходных данных

В выходной файл выведите K(x).

Примеры:

ввод вывод

100

099

2414

3177

Added: admin
Difficulty: 0.736204180985
Accepted: 45
Submitted: 92
Analyze this Discuss

Обсуждение:

Начать обсуждение:

Powered by django, eJudge.