inspirado en esta conversación de chat
Un número satisfactorio es un número cuya representación decimal es de la formaabx
, con las siguientes propiedades:
x
es el sufijo de repetición final más largo, o el último dígito si no hay repetición al final (123333
->3333
,545656
->5656
,123
->3
)b
es el único dígito anterior ax
(123333
->2
,55545656
->4
)a
es el prefijo restante (123333
->1
,55545656
->555
)a == c**b
(**
denota exponenciación), dondec
es el número de repeticiones de la porción repetitiva más pequeña dex
(1623333
->4
(3 3 3 3
, not33 33
))
Por ejemplo, 8300
es un número que satisface con a = 8
, b = 3
, c = 2
, y x = 00
. 24651
no es un número que satisface, porque x = 1
, b = 5
, a = 246
, y no hay ningún número entero c
que satisface c^5 = 246
. 1222
tampoco es un número satisfactorio, porque con x = 222
y b = 1
, no quedan dígitos restantes a
.
Dado un número entero positivo n >= 100
, la salida es o no n
un número satisfactorio.
Ejemplos
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
esx,c,b,a=33,2,3,8
y por lo tanto satisfactorio?x
es codicioso.Respuestas:
Jalea , 26 bytes
se siente demasiado tiempo
Un enlace monádico que toma un número entero y regresa
1
si la entrada es satisfactoria y0
si no.Pruébalo en línea! o ver un conjunto de pruebas
¿Cómo?
fuente
Python 3 , 141 bytes
Pruébalo en línea!
Python 3 , 144 bytes
Pruébalo en línea!
la salida es a través del código de salida
fuente
while
condición para guardar un byte: TIOPerl 6 , 66 bytes
Pruébalo en línea!
fuente
Python 3 , 101 bytes
Python 3 , 107 bytes
La salida es por código de salida.
Este código no se ejecuta correctamente en Tio debido a un error de rango. Funciona perfectamente en IDLE.
fuente
JavaScript (ES6),
282268 bytesfuente
Python 2, 286 bytes
yeesh
N
es una función recursiva que encuentra el número de veces que se repite una subcadena de sufijo en una cadena. Esto básicamente recorre todos los sufijos posibles, encontrando el número de veces que cada uno se repite usandoN
; esto excluye todos los valores dondeN==1
porque no se refieren a repeticiones; Si la lista termina vacía, el sufijo del último carácter se agrega a la lista.Luego, se toma el sufijo más largo, (
q
), se encuentra el número de caracteres que ocupa (i
) ya==c**b
se marca (print ...
).Si se produce un error en el camino (lo que suele ocurrir), queda atrapado en el
except
bloque.Cualquier sugerencia es más que bienvenida!
fuente