Você recebe um número inteiro não negativo não-primário (base 9) que consiste nos dígitos de 0 a 8, como de costume. No entanto, o número de dígitos nesse número (sem zeros à esquerda) é um quadrado perfeito.
Por esse motivo, o número pode ser organizado em uma grade quadrada (com a ordem de leitura ainda preservada).
Exemplo com 1480 (1125 base 10):
14
80
Agora, permita que cada dígito em uma grade nonary indique um movimento para outro espaço da grade (com condições de contorno periódicas ):
432
501
678
Isso está dizendo que
0 = stay still
1 = move right
2 = move right and up
3 = move up
...
8 = move right and down
Portanto, se na grade 1480 você começa no 4, você move para cima (lembre-se pbc) e sai para o 8, o que significa que você move para a direita e para baixo de volta para o 4, iniciando um ciclo com o período 2.
Em geral, esse processo continua até que você chegue a um 0 ou um ciclo seja notado. (A 0 é considerado um ciclo com o período 1.)
No caso de 1480, o período finalmente alcançado em cada um dos 4 dígitos iniciais é 2 2 2 1
respectivamente.
Para uma grade maior, esses números podem ser maiores que 8, mas ainda podemos usá-los como "dígitos" em um novo número não-primário (simplesmente os coeficientes de 9 ^ n como se fossem dígitos):
2*9^3 + 2*9^2 + 2*9 + 1 = 1639 (base 10) = 2221 (base 9)
Nós chamaremos isso de força do número nonary original. Portanto, a força de 1480 é 1639 (base 10) ou, equivalentemente, 2221 (base 9).
Desafio
Escreva o programa mais curto que diga se a força de um número não-primário é maior que, menor que ou igual ao número não-próprio. (Você não precisa necessariamente calcular a força.)
A entrada será um número nonary não negativo que contém um número quadrado de dígitos (e nenhum zero inicial além do caso especial de 0). Deve vir da linha de comando ou stdin.
A saída deve ir para stdout como:
G if the strength is larger than the original number (example: 1480 -> strength = 2221)
E if the strength is equal to the original number (example: 1 -> strength = 1)
L if the strength is less than the original number (example: 5 -> strength = 1)
Desafio de bônus divertido:
Qual é a maior contribuição que você pode encontrar que é igual à sua força? (Existe um limite?)