Definiremos el potencial exponencial N de un entero positivo M como el recuento de prefijos de M N que son potencias N perfectas.
Los prefijos de un número entero son todas las subsecuencias contiguas de dígitos que comienzan con el primero, interpretados como números en la base 10. Por ejemplo, los prefijos de 2744 son 2 , 27 , 274 y 2744 .
Un prefijo P es una perfecta N -de potencia si existe un entero K tal que K N = P . Por ejemplo, 81 es una potencia perfecta de 4 porque 3 4 = 81 .
Dados dos enteros estrictamente positivos M y N , calcule el potencial N- exponencial de M de acuerdo con la definición anterior.
Por ejemplo, el potencial exponencial 2 de 13 es 3 porque 13 2 es 169 , y 1 , 16 y 169 son cuadrados perfectos.
Casos de prueba
Naturalmente, las salidas casi siempre serán bastante pequeñas porque las potencias son ... bueno ... funciones que crecen exponencialmente y tener múltiples prefijos de potencia perfecta es bastante raro.
M, N -> Output
8499, 2 -> 1
4, 10 -> 2
5, 9 -> 2
6, 9 -> 2
13, 2 -> 3
4, 10
es porque 1 es una potencia perfecta de 10 y 1048576 también es una potencia perfecta de 10 (mientras que 10 , 104 , 1048 , 10485 y 104857 no lo son). Por lo tanto, hay 2 prefijos válidos, por lo que la salida es 2.Respuestas:
Brachylog , 12 bytes
Pruébalo en línea!
Explicación
fuente
Jalea , 10 bytes
Pruébalo en línea!
Cómo funciona
fuente
Haskell , 56 bytes
Pruébalo en línea!
Extrae los prefijos aritméticamente por repetidos
\x->div x 10
. Intenté expresar la última línea sin puntos pero no encontré una expresión más corta.fuente
05AB1E , 8 bytes
Pruébalo en línea!
Utiliza el algoritmo Dennis's Jelly de 10 bytes. Las entradas están en orden inverso.
fuente
Perl 5 , 38 bytes
Pruébalo en línea!
fuente
Haskell, 73 bytes
Pruébalo en línea!
fuente
Java (OpenJDK 9) , 105 bytes
Pruébalo en línea!
Créditos
fuente
.startsWith(""+(int)Math.pow(k,n))
puede ser.matches((int)Math.pow(k,n)+".*")
de -1 byte.Perl 6 , 40 bytes
Pruébalo en línea!
fuente
&foo
variable, puede llamarlo como lo haría con una subrutinafoo( 'bar' )
ofoo 'bar'
no es necesario incluirlo&
. Quiero decir que no lo&say(&f(|$_))
say
Jalea , 14 bytes
Pruébalo en línea!o ver el conjunto de pruebas
Cómo funciona
fuente
APL (Dyalog) , 31 bytes
Pruébalo en línea!
fuente
Haskell , 83 bytes
Pruébalo en línea!
fuente
Rubí , 60 bytes.
Mucho de esto es tratar con errores de coma flotante
Pruébalo en línea!
fuente
Kotlin , 89 bytes
Pruébalo en línea!
En los casos de prueba, pasé n como valores dobles (2.0, 10.0, 9.0) para que no tenga que convertir a doble al llamar a Math.pow ().
fuente
Python 2 ,
837170 bytesPruébalo en línea!
Thx para 1 de los ovs.
fuente
math.round()
jajajaJalea , 9 bytes
Pruébalo en línea!
fuente