Esta é uma questão bastante comum. Definirei uma sequência e você cria um código para gerar uma entrada com um índice.
O primeiro item da sequência é 2.
O enésimo item da sequência é o menor número inteiro positivo que não seja n e 1 que compartilhe pelo menos um fator com n (que não seja 1) que ainda não apareceu na lista.
Casos de teste
Aqui estão os primeiros 25 itens na sequência:
1 2
2 4
3 6
4 8
5 10
6 3
7 14
8 12
9 15
10 5
11 22
12 9
13 26
14 7
15 18
16 20
17 34
18 16
19 38
20 24
21 27
22 11
23 46
24 21
25 30
code-golf
number
sequence
permutations
Post Rock Garf Hunter
fonte
fonte
Python 3 ,
118117 bytes-1 byte graças a Cameron Aavik !
Experimente online!
O código é bastante ineficiente (força bruta um valor que não existe nos resultados anteriores e calcula os resultados anteriores novamente em cada novo valor); portanto, funciona corretamente, mas eu não recomendaria executá-lo em grandes números.
fonte
def f(n,i=3):
e removendo ai=3
linhaHaskell ,
6059 bytesEDITAR:
all(/=x)
era menor quex`notElem`
.f
pega um número inteiro e retorna um número inteiro.Experimente online!
Este é um tempo muito exponencial, então o TIO expira após 21, enquanto meu GHCi interpretado chegou a 22 antes que eu parasse agora. A seguinte versão mais longa de 9 bytes, memorizando em uma lista, chega facilmente aos milhares:
Experimente online!
f n
usa uma compreensão de lista para gerar candidatosx
, levando o primeiro passo com!!0
.gcd x n>1
verifica issox
en
possui fatores comuns.||n<2
isentan==1
do requisito fatorial.all(/=x)$n:map f[1..n-1]
verifica quex
não én
nem um elemento de sequência anterior.fonte
all(/=x)$
é 1 mais curto láSem built-in para GCD em C #, então ...
C # (.NET Core) ,
197196194bytesExperimente online!
Mais uma vez, evite usar esse código para calcular números na sequência de
n>30
...while
loop GCD para umfor
loop.fonte
a>0&b>0
pode sera*b>0
APL (Dyalog) , 46 bytes
Experimente online!
fonte