Eu vim com uma série de números no outro dia e decidi verificar qual era o número OEIS. Para minha surpresa, a sequência não parecia estar no banco de dados da OEIS, então decidi nomear a sequência depois de mim mesmo (observe que alguém que é muito mais inteligente do que eu provavelmente já sugeriu isso, e se alguém encontrar o nome real dessa sequência, comente e alterarei o título da pergunta). Como não consegui encontrar a sequência em nenhum lugar, decidi dar um nome a ela mesma, daí "Gryphon Numbers". EDIT: Obrigado a @Surb por trazer à minha atenção o fato de que essa sequência é igual à sequência OEIS A053696 - 1.
Um número Gryphon é um número da forma , em que e são números inteiros maiores ou iguais a dois, e a sequência Gryphon é o conjunto de todos os números Gryphon em ordem crescente. Se houver várias maneiras de formar um número Gryphon (o primeiro exemplo é , que é e ), o número é contado apenas uma vez na sequência. Os primeiros números da Gryphon são: .
Sua tarefa:
Escrever um programa ou função que recebe um número inteiro como entrada e emite o th número de Gryphon.
Entrada:
Um número inteiro entre 0 e 10000 (inclusive). Você pode tratar a sequência como indexada 0 ou 1, conforme sua preferência. Indique qual sistema de indexação você usa em sua resposta para evitar confusão.
Saída:
O número do Gryphon correspondente à entrada.
Casos de teste:
Observe que isso pressupõe que a sequência seja indexada em 0. Se o seu programa assume uma sequência indexada em 1, não se esqueça de incrementar todos os números de entrada.
Input: Output:
0 ---> 6
3 ---> 20
4 ---> 30
10 ---> 84
99 ---> 4692
9999 --> 87525380
Pontuação:
Isso é código-golfe , então a pontuação mais baixa em bytes vence.
Respostas:
Geléia , 9 bytes
Um programa completo que lê um número inteiro (1-indexado) de STDIN e imprime o resultado.
Experimente online!
Quão?
Um número Gryphon é um número que é expressável em uma base inferior a si mesmo, de modo que todos os dígitos sejam um, exceto o menos significativo, que é zero. Por exemplo:
Este programa pega
n
, depois iniciav=0
e testa essa propriedade e incrementav
até encontrarn
esses números, e emite o último.Para testar um−1 . (Observe que
b
número base , subtrai um de cada dígito, converte da basev
e depois verifica se o resultado éb
é menor quev
)fonte
MATL ,
1613 bytesBaseado em 1.
Experimente online!
Explicação
Considere a entrada
n = 3
como um exemplo.A matriz obtida na etapa (*) contém possivelmente números repetidos de Gryphon. Em particular, ele contém
n
números Gryphon distintos em sua primeira linha. Estes não são necessariamente osn
menores números de Grifos. No entanto, a entrada inferior esquerda2+2^+···+2^n
excede a entrada superior direitan+n^2
e, portanto, todos os números na última linha excedem os da primeira linha. Isso implica que estender a matriz para a direita ou para baixo não contribuiria com nenhum número de Gryphon menor que osn
números mais baixos da matriz. Portanto, é garantido que a matriz contenha osn
menores números de Grifos. Conseqüentemente, seun
menor elemento exclusivo mais baixo é a solução.fonte
Haskell , 53 bytes
Experimente online!
Geramos uma lista infinita de todos os , modo que uma pesquisa de força bruta mostre que este é o caso.n≥6
A resposta é uma função de índice (indexada a zero) nesta lista, indicada em Haskell como
(list!!)
.Por que está
a^y+n==n*a+a
correto?Da fórmula para somar uma progressão geométrica :
a^y+n=n*a+a
Está pesquisando até o
n
suficiente?fonte
Python 3.8 (pré-lançamento) ,
9892897871 bytesExperimente online!
Indexado a 0. A divisão de números inteiros deve ser usada aqui porque o excesso de f (10000) flutua.
-6 bytes graças a Jonathan Allan
-3 bytes graças ao ArBo. Eu quase fiz como ele me sugeriu, mas tentei usar o
{*(...)}
que não economizava espaço de qualquer maneira-11 bytes graças a mathmandan
-7 bytes graças ao ArBo
Prova matemática de validade
Utilizando a indexação 0 para fins desta prova, mesmo que a convenção matemática seja indexada 1.
fonte
f=
é desnecessário elambda n,r=range:
economiza mais 4 ( assim )set()
e substituí-lo por uma compreensão definida para chegar a 89f=
link do TIO colocando-o no cabeçalho, como no TIO do meu 89-byterJ ,
3532 bytes-3 bytes graças ao FrownyFrog
Experimente online!
A explicação é igual ao original. Simplesmente usa forma explícita para salvar bytes e remover o múltiplo
@
.resposta original, tácita, com explicação: 35 bytes
Experimente online!
Semelhante à abordagem de Luis Mendo, criamos uma "tabela de poder" (como uma tabela de tempos) com a linha superior
2 3 ... n
e a coluna esquerda1 2 ... n
resultando em:^~/ >:
cria a tabela,1+i.@+&2
cria as1... n
seqüências e adicionamos 2 (+&2
) à entrada para garantir que sempre tenhamos elementos suficientes para criar uma tabela, mesmo para as entradas 0 ou 1.Depois de termos a tabela acima, a solução é trivial. Apenas digitalizamos a soma das linhas
+/\
e, em seguida, removemos a primeira linha, achatamos, assumimos uma classificação exclusiva e classificamos/:~@~.@,@}.
. Finalmente,{
usa a entrada original para indexar esse resultado, produzindo a resposta.fonte
Gaia , 18 bytes
Experimente online!
Índice baseado em 1.
Esta é uma resposta bastante triste, com um nariz comprido:
)┅:
provavelmente deseja que ele possa ser jogado mais longe.Copia o algoritmo dado pela resposta de Luis Mendo
fonte
R ,
65bytes 62-1 byte graças a Giuseppe.
Experimente online!
1 indexado.
Observe que
sort(unique(...))
não funcionaria, poisunique
daria linhas únicas da matriz e não entradas exclusivas. Usarunique(sort(...))
funciona porquesort
converte em vetor.fonte
t
ediffinv
tem 64 bytesdiffinv
. Joguei mais 2 bytes substituindo[-1:-2,]
por[3:n,]
.JavaScript (ES7), 76 bytes
1 indexado.
Experimente online!
JavaScript (ES7), 89 bytes
1 indexado.
Experimente online!
fonte
Wolfram Language (Mathematica) , 51 bytes
Experimente online!
Indexado 1
-8 bytes de @attinat
fonte
Carvão , 36 bytes
Experimente online! Link é a versão detalhada do código. 1 indexado. Usa o algoritmo de Luis Mendo. Explicação:
Imprima o número Gryphon restante mais baixo.
fonte
Japonês , 23 bytes
Caro Jebus! Ou eu realmente esqueci como jogar golfe ou a bebida finalmente está cobrando seu preço!
Não é um porto direto da solução de Jonathan, mas muito inspirado por sua observação.
Tente
fonte
05AB1E , 12 bytes
Indexado a 0
Explicação:
fonte