Introdução
A sequência do ECG começa com 1 e 2, então a regra é que o próximo termo seja o menor número inteiro positivo que ainda não esteja na sequência e cujo fator comum com o último termo seja maior que 1 (eles não são coprimes).
Os primeiros termos são:
1, 2, 4, 6, 3, 9, 12, 8, 10, 5, 15, ...
É chamado de eletrocardiograma porque o gráfico de seus termos é bastante semelhante a um eletrocardiograma.
É a sequência A064413 no OEIS .
Desafio
Você tem que escrever uma função que leva um inteiro n como entrada e saídas quantos dos n primeiros termos da sequência são maiores do que n .
Como a regra da sequência começa com o terceiro termo, o número inteiro de entrada deve ser maior ou igual a 3. Por exemplo, dada a entrada, 10
a saída ocorre 1
porque o sétimo termo é 12
e nenhum dos outros dez primeiros excede 10.
Casos de teste
3 -> 1
10 -> 1
100 -> 9
1000 -> 70
Regras
- Para números inteiros menores que 3, a função pode gerar 0 ou um código de erro.
- Nenhuma outra regra específica, exceto: é código de golfe, quanto menor, melhor!
1
sendo o 0º termo da sequência e, portanto, criando, por exemplo,15
o 10º termo, em vez de5
?Respostas:
Geléia ,
201918 bytesEste é um programa completo.
Experimente online!
Como funciona
Observe que a sequência gerada é[1,0,2,4,6,3,9,12,8,10,5,15,…] . Como chamar o link auxiliar n vezes gera uma sequência de comprimento n+1 , o 0 é praticamente ignorado.
fonte
Perl 6 ,
66635958 bytes-4 bytes graças a Jo King
Experimente online!
Muito lento no TIO para n = 1000.
fonte
first &f,1..*
pode ser reescrito como+(1...&f)
, seu truque de junção ajudou, afinal.JavaScript (ES6),
107106105 bytesExperimente online!
Quão?
a.indexOf(k)
é igual a:a.indexOf(k) + C(k, a[0])
fonte
Haskell,
8982 bytesEdit: -7 bytes graças a @ H.PWiz
Experimente online!
fonte
Casca , 16 bytes
Experimente online!
Explicação
fonte
MATL , 29 bytes
Experimente online!
Explicação:
fonte
GE:
)?while
loop seria muito mais confuso no MATL, então eu estava tentando evitá-lo.APL (Dyalog Unicode) , SBCS de 39 bytes
-2 bytes graças a ngn, -1 byte usando a verificação condicional adequada.
Experimente online!
fonte
⍣
passa seu próprio argumento esquerdo para a função operando, portanto não há necessidade∘
. Além disso,⍵
não se vincula à coisa à direita, pois começa com uma função (⍳
), portanto não há necessidade⊢
.JavaScript,
939187 bytesLança um erro de estouro para
0
ou1
, gera0
para2
.Experimente online
fonte
APL (NARS), caracteres 121, bytes 242
teste em menos de um minuto aqui em tempo de execução:
Natural, não há verificação de tipo e alcance ...
fonte
Japonês,
2321 bytesTente
fonte
Python 3 , 153 bytes
Experimente online! (Aviso: leva cerca de 30 segundos para avaliar)
fonte