Entrada
nenhuma contribuição para este desafio
O desafio
Escreva um código que produz:
Os 10 primeiros números primos cuja soma de seus dígitos é igual ao número de bytes do seu código
Exemplos
Digamos que seu código é Co&%423@k"oo"
qual é o 13 bytes
seu código deve gerar [67, 139, 157, 193, 229, 283, 337, 373, 409, 463]
esses são os 10 primeiros números primos cuja soma .... ok, você conseguiu!
Se o seu código for 8 bytes
, você deve enviar[17, 53, 71, 107, 233, 251, 431, 503, 521, 701]
Regras
Você deve usar apenas os primeiros 10 ^ 8 números primos, o
que significa que todos os seus números devem ser <2038074743 = 10 ^ 8º primo
Se você não encontrar 10 números primos nesse intervalo que correspondam aos seus bytes, precisará ajustar o seu código (talvez seja necessário adicionar alguns bytes!) Para encontrar um " número funcional de bytes "
Basta imprimir os 10 números da maneira que desejar
Isso é código-golfe , então o código mais curto em bytes vence!
Respostas:
Neim ,
1087 bytes-1 byte graças ao ASCII-only.
Experimente online!
Saídas:
Isso (bem, pelo menos a abordagem) é inacreditável.
Explicação
fonte
νᛦ𝐋Λ𝐬7𝔼
Para 7 ... edit:π
->ν
: pGelatina , 14 bytes
Experimente online!
Isso imprime:
Como funciona
fonte
Pitão , 14 bytes
Experimente aqui.
São 14 bytes e são impressos:
Pitão , 16 bytes
Experimente aqui!
Observe que isso pode ser 15 bytes:,
.f&qssM`Z16P_ZTZ
mas não há números primos que tenham 15 como a soma de seus dígitos, pois15
é divisível por3
, o que implicaria que o número também seria divisível por3
, portanto, não sendo primo.Tem 16 bytes e imprime:
Quão?
Explicação 1
Explicação 2
fonte
Casca , 13 bytes
Experimente online!
Explicação
fonte
Haskell ,
7771 bytesExperimente online!
Guardado 6 bytes graças a Laikoni
Para 71 bytes:
1999999999 é o número com a soma máxima de dígitos no intervalo permitido e essa soma é 82. Qualquer programa com mais de 82 bytes não satisfará a condição. Espero que 77 bytes estejam ok, mas não sei (ainda está sendo executado no meu computador).
EDIT: uma versão ligeiramente otimizada deu para 77 bytes:
fonte
Geléia ,
1413 bytesExperimente online!
Quão?
fonte
Braquilog , 13 bytes
Experimente online!
fonte
05AB1E , 10 bytes
Experimente online!
O
}
é usado como preenchimento, pois 9 é uma contagem de bytes inválida.Saída:
[19, 37, 73, 109, 127, 163, 181, 271, 307, 433]
Explicação
Quase 8 bytes
Isso seria válido se mais um byte pudesse ser eliminado.
Experimente online!
Saída:
[17, 53, 71, 107, 233, 251, 431, 503, 521, 701]
Explicação
fonte
Mathematica, 52 bytes
thanx para @Não uma árvore para -6 bytes
fonte
Select
quantas coisas você quer retorno:Select[Prime@Range[10^6],Tr@IntegerDigits@#==52&,10]
Select[Prime@Range[77705],Tr@IntegerDigits@#==50&]
J, 29 bytes
Experimente online!
Definitivamente funciona no REPL, provavelmente também funciona em um programa regular (não sei como J faz a saída para os programas serem honestos).
Primeira passagem, não particularmente ideal, mas não consigo pensar em nenhuma abordagem mais inteligente. Indo para a codificação codificada de uma sequência menor.
Explicação
872 garante que apenas os 10 primeiros números primos cuja soma digital é 29 serão usados.
fonte
V ,
7371 bytesExperimente online!
Compactação simples de substituição de substring - verifiquei todas as saídas de resposta possíveis e depois fiz alguns testes - "qual deles tem uma substituição simples de string que salva a maioria dos caracteres". por exemplo, gerar esta tabela . [edit: Olhei novamente para a mesa e vi que eu poderia fazer a versão de 71 bytes].
Os números primos mais altos têm execuções mais longas de 9, e o melhor que encontrei foi onde os dígitos somam 73, o padrão 89999 -> 1 char reduz o texto de 99 bytes para 63 bytes. Encontrar uma maneira de desfazer 'a' -> '89999' nos 10 bytes restantes me levou a V.
fonte
Japonês , 19 bytes
Teste-o
Explantaion
Gere uma matriz de números inteiros (
õ
) de 1 a 100 (L
) ao quadrado.Filtre (
f
) passando cada um por uma função, ondeZ
está o elemento atual.Verifique se
Z
é primo.AND lógico (
&&
).Divida
Z
em uma matriz de dígitos (ì
) e reduza pela adição (x
).Verifique a igualdade com
19
.Fatia (
¯
) para o 10º elemento e gera implicitamente a matriz resultante.fonte
Japonês , 19 bytes
Experimente online! com o
-Q
sinalizador para formatar a matriz.Produz os 10 primeiros números primos cujos dígitos são adicionados a
19
:Observe que isso pode ter um golfe de 18 bytes (
ì x
→ìx
), mas não existem números primos com uma soma de dígitos 18.Explicação
Mapeie a matriz
[0, ..., 9]
pela seguinte função, ondeX
está o valor atual.Retorna o primeiro número inteiro que retorna true a partir da seguinte função, onde
Z
está o valor atualVerifique se esse número é primo e ...
A soma (
x
) dos dígitos (ì
) emZ
igual a (¥
) 19,E
X
é falso («
é "e não", ou&&!
). Isso também diminuiX
(´
).A matriz resultante é gerada implicitamente.
fonte
PARI / GP, 40 bytes
Não há muito golfe nisso (selecione aqueles
x
com a soma dos dígitos 40 entre os primeiros 8600 primos). A saída é:fonte
Pyke , 10 bytes
Experimente aqui!
fonte
Ruby 2.4.1, 74 bytes
Eu nunca iria vencer uma das linguagens otimizadas do Codegolf, mas ainda era divertido fazê-lo em Ruby. Frustrante que o Prime não esteja no Core, mas na biblioteca padrão. Também estou frustrado por não conseguir derrotar Haskell.
fonte
Paradoc (v0.2.7 +), 10 bytes (CP-1252)
Experimente online!
Um tanto questionável, pois imprime todos os números sem separador entre eles. Um programa de 11 bytes que imprime cada número em uma linha separada:
A única coisa que vale a pena mencionar é o limite superior que é um pouco mais difícil de construir:
Iè
é 18² = 324.fonte
Bubblegum , 37 bytes
Experimente online!
Saída é
29989,39799,39979,48799,48889,49789,56989,58699,58789,58897
fonte