Um número automórfico é um número que é um sufixo de seu quadrado na base 10. Essa é a sequência A003226 no OEIS.
Sua tarefa:
Escreva um programa ou função para determinar se uma entrada é um número automórfico.
Entrada:
Um número inteiro entre 0 e 10 ^ 12 (inclusive), que pode ou não ser um número automórfico.
Saída:
Um valor de verdade / falsidade indicando se a entrada é ou não um número automórfico.
Exemplos:
0 -> truthy
1 -> truthy
2 -> falsy
9376 -> truthy
8212890625 -> truthy
Pontuação:
Isso é código-golfe , a menor pontuação em bytes ganha.
code-golf
number
decision-problem
Gryphon - Restabelecer Monica
fonte
fonte
Respostas:
Braquilog , 5 bytes
Experimente online!
Como funciona
fonte
√a₁?
Por que não?Python 2 , 24 bytes
Experimente online!
Pela primeira vez na história, o Python 2 anexar um
L
ao repr de longs é um recurso e não um bug.A idéia é verificar se, digamos,
76^2=5776
termina76
verificando se76L
é uma substring de5776L
. Para fazerL
aparecer os números não grandes, multiplicamos por1L
ou temos2L
como expoente, pois uma operação aritmética com um longo com produz um longo.fonte
Python 2 , 31 bytes
Superado pelo xnor ... (isso acontece toda vez)> <Mas ei, é surpreendentemente Pythonic para o código-golfe .
As pessoas não tendem a lembrar que o Python tem
str.endswith()
...Experimente online!
fonte
`n*n`
para converter número em string?05AB1E , 5 bytes
Experimente online!
fonte
n
é quadrado,.s
é sufixos,¹
é a entrada, eå
os testes de adesão @isaacgRetina , 44 bytes
Experimente online!
Existem exatamente 4 soluções para a equação 10-adic
x*x = x
.fonte
5*5 != 5
. No entanto, você pode observar algum padrão nos números aos quais você vinculou. As 4 soluções são: 0, 1, ... 59918212890625, ... 40081787109376 (os números p-adic vão infinitamente para a esquerda ). Os números aos quais você vinculou são sufixos dos 4 números.Alice , 17 bytes
Experimente online!
Não produz nada (que é falso no modo Ordinal) ou
Jabberwocky
(que não está vazio e, portanto, é verdade no modo Ordinal; é também o valor da string de verdade canônica).Explicação
Essa é uma pequena modificação da estrutura geral dos programas lineares no modo Ordinal. O
/
meio é usado para ter um único operador no modo Cardinal entre (o*
) e, em seguida, precisamos#
ignorá-lo no modo Ordinal no caminho de volta. O programa linear é então:Vamos passar por isso:
fonte
Mathematica, 31 bytes
Experimente online! O Mathics imprime uma mensagem extra, mas a resposta está correta
fonte
Python 2,
37333029 bytesGuardado 4 bytes graças a @LeakyNun. Salva 3 bytes ao notar que a entrada é menor que 10 ^ 12, portanto
n
, não termina com um "L". Economizei 1 byte graças a @Dennis porque eu desconectei em primeiro lugar.Experimente online! (Link TIO cortesia de @Dennis).
fonte
C (gcc) , 57 bytes
Com base na resposta de @betseg, esta é uma função que retorna 1 ou 0 . Produz saída de lixo para STDOUT, que é permitido por padrão .
A pontuação contém +4 bytes para o sinalizador do compilador
-lm
.Experimente online!
fonte
Ruby, 22 bytes
Experimente online!
fonte
C # (.NET Core) , 47 bytes
Experimente online!
fonte
$"{n}"
paran+""
? Além disso, você poderia adicionar um link TryItOnline ? Ah, e este é um trecho, não uma função / programa. Então você deve adicionarn=>
na frente dele.n+""
. Obrigado!bool f(long n)
de ponto-e-vírgula ou ponto final para respostas lambda em C #, Java etc. Apenasn=>$"{BigInteger.Multiply(n,n)}".EndsWith(n+"")
é suficiente. :) E eu quase esqueci: Bem-vindo ao PPCG!n=>
, usando aSystem.Func
.Carvão ,
1211 bytesExperimente online!
Retorna
False
comofalsey
eTrue
comotruthy
.Power
função?)fonte
0
para10
,100
...1
para50
,60
...2
para760
,3792
...JavaScript (ES6), 23 bytes
Tente
Escrevi este trecho no meu telefone. Por isso, edite se não estiver funcionando corretamente.
fonte
Gelatina , 6 bytes
Experimente online!
fonte
Ị
...Kotlin, 36 bytes
fonte
C, 77 + 4 (
-lm
) = 81 bytesExperimente online!
fonte
n*n
parapow(n,2)
e salvar 5 bytes.R, 28 bytes
Cria uma função:
Toma o módulo de
x^2
tal forma que mantemos os últimos dígitos, com os quais comparamosx
.fonte
Perl 5 , 15 + 1 (-p) = 16 bytes
Experimente online!
fonte
Geléia , 7 bytes
Experimente online!
Número positivo para sim, 0 para não.
fonte
Retina ,
4733 bytes14 bytes graças a Martin Ender.
Experimente online!
fonte
$%
...PHP , 41 bytes
Sandbox do PHP Online
PHP , 42 bytes
sem Regex
PHP , 44 bytes
Use a distância levenshtein
fonte
Dyvil , 26 bytes
Uso:
fonte
Lote, 122 bytes
O algoritmo é limitado apenas pelo tipo inteiro usado para variáveis. No caso de Lote, são números inteiros assinados de 32 bits; portanto, o máximo é 2147483647. Funciona testando n e n-1 para obter as potências necessárias de 2 e 5 como fatores. (Exceto quando n for 0 ou 1, ne en-1 terão um fator cada.)
fonte
> <> , 30 bytes
Experimente online ou assista no playground de peixes !
Supõe que o número de entrada x já esteja na pilha.
Explicação: O peixe pega o quociente de x 2 aumentando as potências de 10 e conta quantas vezes isso é igual a x . Quando a potência de 10 fica maior que x , ela imprime a contagem e pára. A contagem será 1 se x for automórfico e 0 se não for.
fonte
Pari / GP , 23 bytes
Experimente online!
fonte
Pitão ,
109 bytes-1 byte graças a isaacg .
Retorna 0 quando o número é automórfico, qualquer outra coisa se não for.
Teste online!
Explicações
fonte
`
é convertido em string.Rexx (Regina) , 48 bytes
Experimente online!
fonte
Perl 6 , 15 bytes
Experimente online!
Retorna um objeto Match de verdade para entradas automórficas e um valor Nulo falso para outros números.
fonte
Clojure, 59 bytes
Isso parece muito detalhado.
fonte
#(.endsWith(str(* % %))(str %))
?MATL , 10 bytes
Isso funciona para números de até
floor(sqrt(2^53))
, conforme asdouble
limitações de precisão.A saída é um número positivo (que é verdadeiro) se automático, ou vazio (que é falso) se não.
Experimente online!
Explicação
Engraçado que essa resposta use as duas versões sobrecarregadas de
U
: com entrada de string, ela é avaliada como um número e, com a entrada de número, calcula o quadrado.fonte