Вам дается неотрицательное (основание 9) неотрицательное целое число, состоящее из цифр от 0 до 8, как обычно. Однако число цифр в этом числе (без начальных нулей) является квадратом префекта.
Из-за этого число может быть расположено в квадратной сетке (с сохранением порядка чтения).
Пример с 1480 (1125 основание 10):
14
80
Теперь пусть каждая цифра в такой неариальной сетке указывает движение в другое пространство сетки (с периодическими граничными условиями ):
432
501
678
Это говорит о том, что
0 = stay still
1 = move right
2 = move right and up
3 = move up
...
8 = move right and down
Итак, если в сетке 1480 вы начинаете с 4, вы затем двигаетесь вверх (помните pbc) и влево до 8, что означает, что вы двигаетесь вправо и вниз обратно к 4, начиная цикл с периода 2.
В общем, этот процесс продолжается до тех пор, пока вы не достигнете 0 или не будет замечен цикл. (А 0 считается циклом с периодом 1.)
В случае 1480 период, в конечном итоге достигнутый для каждой из 4 начальных цифр, равен 2 2 2 1соответственно.
Для более крупной сетки эти числа могут быть больше 8, но мы все равно можем использовать их в качестве «цифр» в новом неариальном номере (просто коэффициенты 9 ^ n, как если бы они были цифрами):
2*9^3 + 2*9^2 + 2*9 + 1 = 1639 (base 10) = 2221 (base 9)
Мы назовем это силой оригинального числа. Таким образом, сила 1480 составляет 1639 (база 10) или, что эквивалентно, 2221 (база 9).
Вызов
Напишите самую короткую программу, которая сообщает, является ли сила ненарного числа больше, меньше или равна самому числу. (Вам не обязательно вычислять силу.)
Входными данными будет неотрицательное ненарное число, которое содержит квадратное число цифр (и не содержит начальных нулей, кроме особого случая 0). Это должно прийти из командной строки или стандартного ввода.
Вывод должен идти в стандартный вывод как:
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)
Fun Bonus Challenge:
Какой самый высокий вклад, который вы можете найти, равен его силе? (Есть ли предел?)