Estamos procurando uma sequência
Pegue os números naturais
1,2,3,4,5,6,7,8,9,10,11,12,13,14...
Converter em base-2
1,10,11,100,101,110,111,1000,1001,1010,1011,1100,1101,1110...
Concatene os números acima
110111001011101111000100110101011110011011110...
Particionar esse número em Prime-Chunks
(pedaços contendo um número primo de dígitos)
Primes são obtidos em ordem de subida2,3,5,7,11,13,17...
[11][011][10010][1110111][10001001101][0101111001101][1110...]
e encontre a soma dos dígitos de cada pedaço
Primes 2 3 5 7 11 13 17
Chunks [11][011][10010][1110111][10001001101][0101111001101][1110...]
SumOfDigits 2 2 2 6 5 8
A sequência
2, 2, 2, 6, 5, 8, 9, 10, 14, 22, 11, 18, 25, 27, 32, 21, 28, 32, 40, 40, 49, 49, 32, 41, 49, 53, 63, 55, 63, 70, 87, 73, 51, 63, 71, 78, 78, 90, 107, 86, 96, 108, 115, 128, 138, 92, 83, 95, 102, 110, 130, 106, 122, 141, 149, 163, 130, 140, 151, 165, 181, 165, 204, 200, 234, 100, 130, 138, 167, 149, 169, 180, 209, 166, 189, 194, 222, 205, 234, 260, 216, 206, 217, 241, 240, 267, 289, 242, 274, 308, 286, 329, 338, 155, 189, 225, 197, 240, 272, 217, 254, 282, 287, 317, 281, 256, 299, 286, 331, 337, 316, 350, 354, 391, 367, 282, 327, 313, 364, 358, 348, 397, 406, 466 ...
O desafio
Encontre o nth
termo da sequência acima
Entrada
Um inteiro n>0
Casos de teste
1->2
3->2
6->8
36->78
60->165
160->581
260->1099
350->1345
Este é o codegolf . A resposta mais curta em bytes vence!
Respostas:
Casca , 8 bytes
Experimente online!
Explicação
fonte
Gelatina , 12 bytes
Experimente online!
Como funciona
fonte
05AB1E , 12 bytes
Código
Pode ficar bem lento para grandes números:
Usa a codificação 05AB1E. Experimente online!
Explicação
fonte
Mathematica, 71 bytes
Experimente online!
fonte
Geléia , 21 bytes
Experimente online!
fonte
Gelatina , 16 bytes
Experimente online!
Explicação
fonte
R ,
206200 bytesExperimente online!
O algoritmo tenta também "economizar" no espaço, removendo iterativamente os bits à medida que circula pelos primos. Eu sinto que a conversão decimal em bits provavelmente poderia ser mais curta, mas não consegui descobrir outras alternativas.
Economizou 6 bytes graças a Jonathan French.
fonte
p=j=2
é dois bytes menor quep=2;j=2
.a=p
, economizando mais dois bytes.y=1
, substituído pory=2
, resultando em 200 bytes .JavaScript (ES6), 144 bytes
Ungolfed
Casos de teste
Mostrar snippet de código
fonte
Python 2 , 114 bytes
Experimente online!
fonte
JavaScript (ES6),
138132123 bytesCasos de teste
Experimente online!
Demo
Nota: Apenas os casos de teste 'seguros' estão incluídos aqui (com garantia de funcionar no Chrome, Firefox e Edge). Pode ser necessário aumentar o tamanho da pilha de chamadas do seu mecanismo para passar pelos outros.
Mostrar snippet de código
Formatado e comentado
fonte
Perl 6 , 67 bytes
Teste-o
Expandido:
fonte
Python 2 ,
143139133 bytes-4 bytes graças a @ErikTheOutgolfer
Experimente online!
fonte
J, 48 bytes
explicado
Experimente online!
fonte
/.
):_1({]+//.$$&;<@#:@#\)[:#~p:@i.
JavaScript 1+ + substr, 135 bytes
fonte