Dê uma olhada na tabela de multiplicação sevens de 7 × 0 a 7 × 9:
0, 7, 14, 21, 28, 35, 42, 49, 56, 63
Se apenas olharmos para os dígitos no lugar, obtemos uma permutação dos dígitos de 0 a 9:
0, 7, 4, 1, 8, 5, 2, 9, 6, 3
Considere pegar algum número inteiro decimal positivo N e substituir cada dígito D em N pelo dígito no lugar de 7 × D.
Por exemplo, 15209
torna-se 75403
porque 1
mapeia para 7
, 5
mapeia para 5
, 2
mapeia para 4
, 0
mapeia para 0
e9
mapeia para 3
.
Agora vamos repetir esse processo com esse novo número inteiro decimal até vermos um ciclo, ou seja, até que um número inteiro que já vimos apareça.
Por exemplo, com 15209
o ciclo
15209 -> 75403 -> 95801 -> 35607 -> 15209 -> repeats...
^
|
cycle restarts here
Como outro exemplo, 505
tem o ciclo curto
505 -> 505 -> repeats...
^
|
cycle restarts here
Acontece que para qualquer N esses ciclos sempre conterão exatamente 1 ou 4 números inteiros distintos. (Vou deixar para você descobrir por que isso é.) O interessante é que, se você soma todo o número inteiro distinto em um ciclo, quase sempre obtém um número decimal que consiste apenas de 2
s e 0
s.
Por exemplo, 15209 + 75403 + 95801 + 35607 = 222020.
N = 505 é uma das exceções. O único número inteiro no ciclo é 505, portanto, a soma total é 505 em si.
Aqui estão as somas dos ciclos para N = 1 a 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
Vamos chamar isso de Sequência de Soma do Ciclo dos Sete.
Desafio
Escreva um programa ou função que obtenha um número inteiro decimal positivo N e imprima ou retorne, em decimal, o termo correspondente da Sequência de Soma de Ciclo de Seven.
Por exemplo, se a entrada for 95801
, a saída deve ser 222020
. Se a entrada for 505
, a saída deve ser 505
. Se a entrada for 54
, a saída deve ser 220
.
O código mais curto em bytes vence.