Introdução
Vamos pegar o número 180
. Este é um número interessante porque a soma dos dígitos desse número é igual a:
1 + 8 + 0 = 9
E a versão quadrada desse número, ou:
180² = 32400 > 3 + 2 + 4 + 0 + 0 = 9
Estes são ambos 9 . A soma dos dígitos do número original e o número ao quadrado são os mesmos. Obviamente, isso também é encontrado em OEIS: A058369 .
Tarefa
Dado um número inteiro não negativo n
, imprima o número positivon
th com esta condição.
Casos de teste ( indexado a zero )
Input > Output
0 > 1
1 > 9
2 > 10
3 > 18
4 > 19
5 > 45
6 > 46
7 > 55
8 > 90
9 > 99
10 > 100
11 > 145
12 > 180
13 > 189
14 > 190
15 > 198
16 > 199
17 > 289
18 > 351
19 > 361
A entrada também pode ser indexada em 1, se for melhor para você.
Isso é código-golfe , então a submissão com a menor quantidade de bytes ganha!
^₂;?{ẹ+}ᵛ
Respostas:
Gelatina, 13 bytes
A entrada é indexada em 1. Experimente online!
Como funciona
fonte
Haskell, 54 bytes
Exemplo de uso:
([x|x<-[1..],s x==s(x^2)]!!) 17
->289
.fonte
JavaScript (ES6),
76 7372 bytesPassei 30 minutos tentando fazer isso funcionar até que percebi que estava produzindo a variável errada: |
Isso é zero-indexado.
fonte
Perl 6,
4746 bytesfonte
05AB1E ,
1098 bytes1 indexado.
-1 byte graças ao @Emigna removendo o implícito
½
(aumentocounter_variable
após cada iteração) no final-1 byte graças ao @Grimy removendo o duplicado
SO
usando‚1ö
Experimente online.
Explicação:
fonte
½
aqui como é implícitaµNDn‚1öË
.1ö
é comoSO
vectorizes, o que nos permite evitar a duplicação de código.Mathematica, 64 bytes
Função anônima simples. Indexado a zero.
fonte
Pitão, 15
1 byte graças a DenkerAffe!
Experimente aqui ou execute um Conjunto de Testes .
Usa a opção 1 indexada.
Implementação ingênua usando o
.f
qual obtém os primeirosn
números que correspondem à condição especificada.fonte
h
se usar a indexação 1 explicitamente permitida.MATL ,
2423 bytesUsa entrada baseada em 1.
Experimente online!
fonte
Julia,
7966 bytesEsta é uma função recursiva que aceita um número inteiro e retorna um número inteiro. Ele usa a indexação baseada em 1.
Armazenamos algumas coisas como argumentos de função:
n
: A entradax
: Um contador para quantos números com essa condição encontramosi
: Um número para verificar a condiçãos
: Uma função para calcular a soma dos dígitos de sua entradaEmbora
x
seja menor que a entrada, recuamos, incrementandox
sei
atender à condição e incrementandoi
. Uma vezx == n
, retornamosi
, mas precisamos subtrair 1 porque ele será incrementado muitas vezes.fonte
0,2 convexo,
3635 bytesConvexo é uma nova linguagem que estou desenvolvendo que é fortemente baseada em CJam e Golfscript. O intérprete e o IDE podem ser encontrados aqui . A entrada é um número inteiro nos argumentos da linha de comandos. Os índices são baseados em um. Usa a codificação CP-1252 .
fonte
Mathematica,
63606159 bytesAo fazer isso, a outra resposta apareceu, mas estou vencendo-os por um único byte e postando isso antes que um seja jogado.Um indexado.fonte
>2457
. Simplesmente aumentar o seuRange
não ajudará, porqueA058369[n]/n
não parece convergir.10^#
seria mais curto que2^#*9
. Claro que se torna muito lento depois de n é maior do que cerca de 6 ...9^#
? FilRetina, 103 bytes
Definitivamente jogável.
Usa o novo recurso Retina
%
para quadratura (portanto, ainda não funciona com a versão online).fonte
Mathcad,
7050 bytesO Mathcad não possui funções integradas para converter um número em sua sequência de dígitos, portanto, a função de usuário d (a) faz esse trabalho. Um programa itera através dos números inteiros positivos, testando a igualdade de somas, até acumular n números no vetor v. O programa é avaliado usando o operador =, que exibe o vetor de resultado. ( Observe que o programa inteiro aparece exatamente como exibido abaixo na planilha do Mathcad )
Programa atualizado: assume a inicialização padrão de a a zero e faz uso do fato de que o Mathcad retorna o valor da última instrução avaliada em um programa.
Utiliza a ordem de avaliação das expressões para incrementar a variável a no primeiro somatório (e que está disponível para uso na soma do quadrado)
Programa original: retorna um vetor de todos os números até n.
fonte
Japt , 15 bytes
Indexado 1
Tente
fonte
Java 8, 113 bytes
Indexado a 0
Explicação:
Experimente online.
fonte
Perl 5
-p
, 53 bytesInclui
+1
para-p
1 com base
Experimente online!
fonte
TI-BASIC
6662 bytesEntrada én no n th termo na sequência.
Ans
.A saída é o 1-indexado
A função auxiliar gera a soma dos dígitos do valor em
Ans
.Exemplos:
Explicação:
Nota: TI-BASIC é um idioma tokenizado. Contagem de caracteres não é igual à contagem de bytes.
fonte
J , 62 bytes
Experimente online!
1 indexado. J, mais uma vez, não estou tendo bom desempenho nessas "enésimas" tarefas, devido à excessiva mecânica de digitação de livros.
fonte
APL (NARS), 49 caracteres, 98 bytes
Indexado 1, teste:
fonte
MathGolf , 10 bytes
Experimente online!
Explicação
Para tornar isso utilizável, escolhi apresentar uma versão que calcula todos os números com essa propriedade abaixo de 1000 e busca o item correto dessa lista. Para ter uma solução que funcione para qualquer tamanho de entrada, o primeiro byte pode ser substituído por10n , o script sempre teria sucesso. No entanto, isso coloca um limite prático no cálculo, que é muito baixo.
ú
(pressione 10 ** TOS). Como o n: ésimo termo na sequência é sempre menor quefonte