Мы определим N- экспоненциальный потенциал положительного целого числа M как количество префиксов M N, которые являются совершенными N -силами.
Префиксы целого числа - это все смежные подпоследовательности цифр, начинающиеся с первой, которые интерпретируются как числа в базе 10. Например, префиксы 2744 - это 2 , 27 , 274 и 2744 .
Префикс Р является идеальной Н -степенью , если существует целое число K таких , что K N = P . Например, 81 - идеальная 4- сила, потому что 3 4 = 81 .
Для двух строго положительных целых чисел M и N вычислим N- экспоненциальный потенциал M согласно приведенному выше определению.
Например, 2- экспоненциальный потенциал 13 равен 3, потому что 13 2 равен 169 , а 1 , 16 и 169 являются идеальными квадратами.
Контрольные примеры
Естественно, выходные данные почти всегда будут довольно малы, потому что мощности - это ... ну ... экспоненциально растущие функции и наличие нескольких префиксов совершенной мощности довольно редко.
M, N -> Output
8499, 2 -> 1
4, 10 -> 2
5, 9 -> 2
6, 9 -> 2
13, 2 -> 3
4, 10
равен 2 , потому что 1 - идеальное 10- сильное, а 1048576 - также идеальное 10- сильное (в то время как 10 , 104 , 1048 , 10485 и 104857 - нет). Таким образом, есть 2 действительных префикса, поэтому вывод равен 2.Ответы:
Брахилог , 12 байт
Попробуйте онлайн!
объяснение
источник
Желе , 10 байт
Попробуйте онлайн!
Как это устроено
источник
Haskell , 56 байт
Попробуйте онлайн!
Извлекает префиксы арифметически повторяется
\x->div x 10
. Я попытался выразить последнюю строку без указания точки, но не нашел более короткого выражения.источник
05AB1E , 8 байтов
Попробуйте онлайн!
Использует 10-байтовый алгоритм Денниса Желе. Входы в обратном порядке.
источник
Perl 5 , 38 байт
Попробуйте онлайн!
источник
Haskell, 73 байта
Попробуйте онлайн!
источник
Java (OpenJDK 9) , 105 байт
Попробуйте онлайн!
кредиты
источник
.startsWith(""+(int)Math.pow(k,n))
может быть.matches((int)Math.pow(k,n)+".*")
за -1 байт.Perl 6 , 40 байт
Попробуйте онлайн!
источник
&foo
переменной, вы можете вызывать ее так же, как подпрограммуfoo( 'bar' )
илиfoo 'bar'
нет необходимости включать ее&
. Я имею в виду, что вы не написали это как&say(&f(|$_))
(say
не является особенным в любом случае)Желе , 14 байт
Попробуйте онлайн! или посмотрите набор тестов
Как это устроено
источник
APL (Dyalog) , 31 байт
Попробуйте онлайн!
источник
Haskell , 83 байта
Попробуйте онлайн!
источник
Рубин , 60 байт
во многом это связано с ошибками с плавающей запятой
Попробуйте онлайн!
источник
Котлин , 89 байт
Попробуйте онлайн!
В тестовых случаях передается в n как двойные значения (2.0, 10.0, 9.0), так что мне не нужно преобразовывать в double при вызове Math.pow ().
источник
Python 2 ,
837170 байтПопробуйте онлайн!
Спасибо за 1 из овс.
источник
math.round()
LOLЖеле , 9 байт
Попробуйте онлайн!
источник