Взгляните на таблицу умножения семерок от 7 × 0 до 7 × 9:
0, 7, 14, 21, 28, 35, 42, 49, 56, 63
Если мы просто посмотрим на цифры на месте, мы получим перестановку цифр от 0 до 9:
0, 7, 4, 1, 8, 5, 2, 9, 6, 3
Подумайте о том, чтобы взять некоторое положительное десятичное целое число N и заменить каждую цифру D в N цифрой вместо 7 × D.
Например, 15209
становится 75403
потому , что 1
сопоставляет 7
, 5
сопоставляет 5
, 2
сопоставляет 4
, 0
сопоставляет 0
и 9
сопоставляет 3
.
Теперь давайте повторим этот процесс с этим новым десятичным целым числом, пока мы не увидим цикл, т.е. пока не появится целое число, которое мы уже видели.
Например, с 15209
мы получаем цикл
15209 -> 75403 -> 95801 -> 35607 -> 15209 -> repeats...
^
|
cycle restarts here
В качестве другого примера, 505
имеет короткий цикл
505 -> 505 -> repeats...
^
|
cycle restarts here
Оказывается, что для любого N эти циклы всегда будут содержать ровно 1 или 4 различных целых числа. (Я оставлю это вам, чтобы выяснить, почему это так.) Интересно то, что если вы суммируете все различные целые числа в цикле, вы почти всегда получаете десятичное целое число, которое состоит только из 2
«и 0
» и «s».
Например, 15209 + 75403 + 95801 + 35607 = 222020.
N = 505 является одним из исключений. Единственное целое число в цикле - 505, поэтому общая сумма равна 505.
Вот суммы циклов для N = 1 до 60:
N sum
1 20
2 20
3 20
4 20
5 5
6 20
7 20
8 20
9 20
10 200
11 220
12 220
13 220
14 220
15 220
16 220
17 220
18 220
19 220
20 200
21 220
22 220
23 220
24 220
25 220
26 220
27 220
28 220
29 220
30 200
31 220
32 220
33 220
34 220
35 220
36 220
37 220
38 220
39 220
40 200
41 220
42 220
43 220
44 220
45 220
46 220
47 220
48 220
49 220
50 50
51 220
52 220
53 220
54 220
55 55
56 220
57 220
58 220
59 220
60 200
Мы назовем это Последовательностью Циклов Семи.
Вызов
Напишите программу или функцию, которая принимает положительное десятичное целое число N и печатает или возвращает, в десятичном виде, соответствующий член последовательности семнадцати циклов.
Например, если вход есть 95801
, выход должен быть 222020
. Если вход есть 505
, выход должен быть 505
. Если вход есть 54
, выход должен быть 220
.
Самый короткий код в байтах побеждает.