Un número automórfico es un número que es un sufijo de su cuadrado en la base 10. Esta es la secuencia A003226 en el OEIS.
Tu tarea:
Escriba un programa o función para determinar si una entrada es un número Automorphic.
Entrada:
Un número entero entre 0 y 10 ^ 12 (inclusive), que puede o no ser un número Automorphic.
Salida:
Un valor verdadero / falso que indica si la entrada es o no un número Automorphic.
Ejemplos:
0 -> truthy
1 -> truthy
2 -> falsy
9376 -> truthy
8212890625 -> truthy
Puntuación:
Este es el código de golf , gana la puntuación más baja en bytes.
code-golf
number
decision-problem
Gryphon - Restablece a Monica
fuente
fuente
Respuestas:
Brachylog , 5 bytes
Pruébalo en línea!
Cómo funciona
fuente
√a₁?
Por qué no?Python 2 , 24 bytes
Pruébalo en línea!
Por primera vez en la historia, la adición de Python 2
L
a la repetición de longs es una característica más que un error.La idea es verificar si decir,
76^2=5776
termina76
verificando si76L
es una subcadena de5776L
. Para hacerL
aparecer los números no grandes, multiplicamos por1L
o tenemos2L
como exponente, ya que una operación aritmética con un largo con produce un largo.fuente
Python 2 , 31 bytes
Out-golfed by xnor ... (esto sucede cada vez)> <Pero bueno, sorprendentemente es Pythonic para code-golf .
La gente no tiende a recordar que Python tiene
str.endswith()
...Pruébalo en línea!
fuente
`n*n`
para convertir un número en una cadena?05AB1E , 5 bytes
Pruébalo en línea!
fuente
n
es cuadrado,.s
tiene sufijos,¹
es la entrada yå
prueba la membresía @isaacgRetina , 44 bytes
Pruébalo en línea!
Hay exactamente 4 soluciones a la ecuación de 10 adic
x*x = x
.fuente
5*5 != 5
. Sin embargo, puede notar algún patrón en los números a los que se vinculó. Las 4 soluciones son: 0, 1, ... 59918212890625, ... 40081787109376 (los números de p-adic van infinitamente a la izquierda ). Los números a los que se vinculó son sufijos de los 4 números.Alice , 17 bytes
Pruébalo en línea!
No genera nada (que es falso en el modo Ordinal) o
Jabberwocky
(que no está vacío y, por lo tanto, es verdadero en el modo Ordinal; también es el valor de cadena de verdad canónico).Explicación
Esta es una ligera modificación del marco general para los programas lineales en modo ordinal. El
/
en el medio se usa para tener un solo operador en modo Cardinal entre (the*
) y luego necesitamos#
saltearlo en modo Ordinal en el camino de regreso. El programa lineal es entonces:Veamos eso:
fuente
Mathematica, 31 bytes
Pruébalo en línea! Matemáticas imprime un mensaje extra pero la respuesta es correcta
fuente
Python 2,
37333029 bytesGuardado 4 bytes gracias a @LeakyNun. Se guardaron 3 bytes al notar que la entrada es inferior a 10 ^ 12, por lo
n
que no termina con una "L". Ahorré 1 byte gracias a @Dennis porque en primer lugar conté mal.Pruébalo en línea! (Enlace TIO cortesía de @Dennis).
fuente
C (gcc) , 57 bytes
Según la respuesta de @ betseg, esta es una función que devuelve 1 o 0 . Produce salida de basura a STDOUT, que está permitida por defecto .
La puntuación contiene +4 bytes para el indicador del compilador
-lm
.Pruébalo en línea!
fuente
Ruby, 22 bytes
Pruébalo en línea!
fuente
C # (.NET Core) , 47 bytes
Pruébalo en línea!
fuente
$"{n}"
an+""
? Además, ¿podría agregar un enlace TryItOnline ? Ah, y este es un fragmento, no una función / programa. Por lo tanto, debe agregarn=>
delante de él.n+""
. ¡Gracias!bool f(long n)
y coma final para las respuestas lambda en C #, Java, etc. Simplementen=>$"{BigInteger.Multiply(n,n)}".EndsWith(n+"")
es suficiente. :) Y casi se me olvida: ¡Bienvenido a PPCG!n=>
, usando aSystem.Func
.Carbón ,
1211 bytesPruébalo en línea!
Devuelve
False
asfalsey
yTrue
astruthy
.Power
función?)fuente
0
para10
,100
, ...1
para50
,60
...2
para760
,3792
...JavaScript (ES6), 23 bytes
Intentalo
Escribí este fragmento en mi teléfono, así que edítelo si no funciona correctamente.
fuente
Jalea , 6 bytes
Pruébalo en línea!
fuente
Ị
...Kotlin, 36 bytes
fuente
C, 77 + 4 (
-lm
) = 81 bytesPruébalo en línea!
fuente
n*n
parapow(n,2)
y guardar 5 bytes.R, 28 bytes
Crea una función:
Toma el módulo de
x^2
tal manera que mantenemos los últimos dígitos, con los cuales los comparamosx
.fuente
Perl 5 , 15 + 1 (-p) = 16 bytes
Pruébalo en línea!
fuente
Jalea , 7 bytes
Pruébalo en línea!
Número positivo para sí, 0 para no.
fuente
Retina ,
4733 bytes14 bytes gracias a Martin Ender.
Pruébalo en línea!
fuente
$%
...PHP , 41 bytes
PHP Sandbox en línea
PHP , 42 bytes
sin Regex
PHP , 44 bytes
Usa la distancia levenshtein
fuente
Dyvil , 26 bytes
Uso:
fuente
Lote, 122 bytes
El algoritmo está limitado solo por el tipo entero usado para las variables. En el caso de Batch, se trata de enteros con signo de 32 bits, por lo que el máximo es 2147483647. Funciona probando tanto n como n-1 para las potencias necesarias de 2 y 5 como factores. (Excepto cuando n es 0 o 1, n y n-1 tendrán un factor cada uno).
fuente
> <> , 30 bytes
¡Pruébelo en línea o mírelo en el parque de peces !
Asume que el número de entrada x ya está en la pila.
Explicación: El pez toma el cociente de x 2 aumentando las potencias de 10, y cuenta cuántas veces es igual a x . Cuando la potencia de 10 es mayor que x , imprime el conteo y se detiene. El recuento será 1 si x es automórfico y 0 si no lo es.
fuente
Pari / GP , 23 bytes
Pruébalo en línea!
fuente
Pyth ,
109 bytes-1 byte gracias a isaacg .
Devuelve 0 cuando el número es automorfo, cualquier otra cosa si no lo es.
¡Pruébelo en línea!
Explicaciones
fuente
`
se convierte en cadena.Rexx (Regina) , 48 bytes
Pruébalo en línea!
fuente
Perl 6 , 15 bytes
Pruébalo en línea!
Devuelve un objeto Match verdadero para entradas automórficas y un valor Nulo falso para otros números.
fuente
Clojure, 59 bytes
Esto parece demasiado detallado.
fuente
#(.endsWith(str(* % %))(str %))
?MATL , 10 bytes
Esto funciona para números hasta
floor(sqrt(2^53))
, segúndouble
las limitaciones de precisión.La salida es un número positivo (que es verdadero) si es automorfo, o vacío (que es falso) si no.
Pruébalo en línea!
Explicación
Es curioso que esta respuesta use las dos versiones sobrecargadas de
U
: con la entrada de cadena se evalúa como un número, y con la entrada de número calcula el cuadrado.fuente