вдохновленный этим разговором в чате
Удовлетворяющее число является числом , чье десятичного представление имеет вида abx
, со следующими свойствами:
x
самый длинный конечный повторяющийся суффикс или последняя цифра, если в конце нет повторения (123333
->3333
,545656
->5656
,123
->3
)b
это одна цифра передx
(123333
->2
,55545656
->4
)a
это оставшийся префикс (123333
->1
,55545656
->555
)a == c**b
(**
обозначает экспоненту), гдеc
число повторений наименьшей повторяющейся частиx
(1623333
->4
(3 3 3 3
, не33 33
))
Например, 8300
это число , удовлетворяющее с a = 8
, b = 3
, c = 2
и x = 00
. 24651
не не удовлетворяющее число, так как x = 1
, b = 5
, a = 246
, и нет целого числа , c
которое удовлетворяет c^5 = 246
. 1222
также не является удовлетворительным числом, потому что с x = 222
и b = 1
нет оставшихся цифр для a
.
Учитывая положительное целое число n >= 100
, выведите, n
является ли удовлетворительное число или нет .
Примеры
8300: True (a=8, b=3, c=2, x=00)
24651: False
1222: False
92555: True (a=9, b=2, c=3, x=555)
64633: True (a=64, b=6, c=2, x=33)
512944: True (a=512, b=9, c=2, x=44)
123: True (a=1, b=2, c=1, x=3)
822809: False
376664: False
723799: False
1234: False
34330000000: True (a=343, b=3, c=7, x=0000000)
92313131: True (a=9, b=2, c=3, x=313131)
16424442444: True (a=16, b=4, c=2, x=24442444)
8333
являетсяx,c,b,a=33,2,3,8
и , следовательно , удовлетворяющим?x
жадный.Ответы:
Желе , 26 байт
чувствует себя слишком долго
Монадическая ссылка, принимающая целое число и возвращающая,
1
если ввод удовлетворяет, а0
если нет.Попробуйте онлайн! или увидеть тестовый набор
Как?
источник
Python 3 , 141 байт
Попробуйте онлайн!
Python 3 , 144 байта
Попробуйте онлайн!
вывод через код выхода
источник
while
состояние , чтобы сохранить байт: TIOPerl 6 , 66 байт
Попробуйте онлайн!
источник
Python 3 , 101 байт
Python 3 , 107 байт
Выход по коду выхода.
Этот код не работает должным образом на Tio из-за ошибки диапазона. Прекрасно работает в режиме ожидания.
источник
JavaScript (ES6),
282268 байтисточник
Python 2, 286 байт
Иш.
N
является рекурсивной функцией, которая находит количество повторений подстроки суффикса в строке. Это в основном перебирает все возможные суффиксы, находя количество повторений каждого с помощьюN
; это исключает все значения где,N==1
поскольку они ссылаются на отсутствие повторов; если список оказывается пустым, к списку добавляется суффикс последнего символа.Затем берется самый длинный суффикс (
q
), определяется количество символов, которое он занимает (i
), иa==c**b
проверяется (print ...
).Если по пути происходит ошибка (что часто случается), она попадает в
except
блок.Любые предложения приветствуются!
источник