Esta questão será uma torção para encontrar o n
número primo th.
Desafio
Você deve escrever um programa que terá uma entrada n
e produzirá o n
número primo cuja representação decimal contém a representação decimal de n
uma subtração.
Confuso? Aqui estão alguns exemplos.
n=1
Primes: 2, 3, 5, 7, 11
^1 first prime that contains a 1
Output: 11
n=2
Primes: 2, 3, 5, 7, 11, 13, 17, 19, 23
^1 ^2 second prime that contains a 2
Output: 23
n=3
Primes: 2, 3, 5, 7, 11, 13, 17, 19, 23
^1 ^2 ^3 third prime that contains a 3
Output: 23
n=10
Primes: 2, 3, 5, 7, 11, ..., 97, 101, 103, 107, 109, ..., 997, 1009, 1013, 1019, 1021, 1031, 1033
^1 ^2 ^3 ^4 ^5 ^6 ^7 ^8 ^9 ^10 tenth prime that contains a 10
Output: 1033
Isso é código-golfe , então a menor contagem de bytes vence.
Se algo estiver confuso, deixe um comentário.
Hot Network Questions
lista.Respostas:
05AB1E , 8 bytes
Código:
Explicação:
Usa a codificação CP-1252 . Experimente online! .
fonte
Pitão - 11 bytes
Conjunto de Teste .
fonte
Python 2,
676562 bytesTeste em Ideone .
Como funciona
Usamos um corolário do teorema de Wilson :
Em todo momento, a variável p é igual ao quadrado do fatorial de m - 1 .
Se k <n ,
k/n
irá produzir 0 e f é chamado de forma recursiva. m é incrementado, p é atualizado ek é incrementado se e somente se m for um primo que contém n .O último é alcançado adicionando o resultado de
p%m*(`n`in`m`)
a k . Pelo corolário do teorema de Wilson, se m é primo,p%m
retorna 1 e, se não, retorna 0 .Uma vez que k alcances n , encontramos q , o n º nobre que contém n .
Estamos na próxima ligação durante a verificação, então m = q + 1 .
k/n
retornará 1 e os operadores bit a bit-~
aumentarão esse número uma vez para cada chamada de função. Como são necessárias q - 1 chamadas para f para incrementar m de 2 para q + 1 , a chamada mais externa para f retornará 1 + q - 1 = q , conforme pretendido.fonte
Bash, 27 bytes
primes
vem de bsdgames.Recebe a entrada como argumento da linha de comando e gera STDOUT.
fonte
Gelatina , 13 bytes
Experimente online!
fonte
Mathematica, 75 bytes
Ainda pode ser jogável.
fonte
Java,
194180173171112 BytesCódigo:
Ungolfed:
fonte
P {
eString[] s
. E 2. No momento, você está apenas fornecendo a saída10
, mas o desafio do código-golfe era obter uma entradan
e fornecer a saída adequada com base nessa entrada. Além disso, você pode achar isso interessante: Dicas para jogar golfe em Java.Rubi,
6261 bytesRequer o
-rprime
sinalizador (+8 bytes).fonte
Julia,
6160 bytesExperimente online!
fonte
MATL , 18 bytes
Experimente online!
Explicação
Isso gera números primos em ordem usando um
do...while
loop. Para cada injeção, a condição é testada (e a injeção é consumida). Se satisfeito, esse prime é empurrado para a pilha novamente. O número de elementos na pilha é usado como contagem de números primos qualificados que encontramos. Quando houver um número suficiente deles, o último será exibido.fonte
Pyke, 15 bytes
Experimente aqui!
fonte
Bash + GNU coreutils, 66 bytes
Ao contrário da solução do @ Doorknob, esta precisa apenas de coisas que estão instaladas em todos os GNU / Linux:
fonte
seq 1e20|factor|grep -Po "(?<=: )\d*$2\d$"|sed $1q\;d
for((...)){
, deve haver um espaço ou nova linha, para que isso não importe. Antes do fechamento}
, deve haver uma;
ou uma nova linha, para que também não importe.Perl 6 , 41 bytes
Explicação:
Teste:
fonte
Java 8,
192183181171 bytes (programa completo)Experimente online.
Explicação:
Java 8, 105 bytes (função lambda)
Experimente online.
O mesmo que acima, mas com
n
entrada como inteiro e sem o material de classe detalhado.fonte
&&
com&
e remover?
do seu regexp.&&
e&
por algum motivo ..Clojure, 118 bytes
Apenas obtém o enésimo elemento da preguiçosa sequência infinita de números que são primos e têm
n
em sua representação de cadeias.Você pode experimentá-lo aqui: https://ideone.com/ioBJjt
fonte
Na verdade, 16 bytes
Experimente online!
Explicação:
fonte
PowerShell v2 +,
10899 bytesOoof. A falta de qualquer tipo de cálculo / verificação principal embutido realmente dói aqui.
Recebe entrada
$n
, entra em umfor()
loop infinito . A cada iteração, usamos umfor
loop em volta do verificador principal do regex do PowerShell (h / t para Martin) para transformá-lo em um gerador principal, incrementando$i
cada vez que o loop é feito. (Por exemplo, executando apenasfor(){for(;'1'*++$i-match'^(?!(..+)\1+$)..'){$i}}
produzirá2, 3, 5, 7...
separado por novas linhas).Em seguida, faça uma
-like
verificação simples para ver se$n
está em algum lugar$i
e aumente nosso contador$o
. Se alcançamos onde$n
e$o
somos iguais, produzimos$i
eexit
. Caso contrário, continuamos até ofor
próximo primo e o processo se repete.fonte
APL (NARS), 39 caracteres, 78 bytes
1π é o próximo número primo ...; teste:
mas que já aos 20 anos sai do espaço da pilha ... Em vez disso, isso abaixo parece ok, mesmo que tenha um pouco mais de duração (61 caracteres)
fonte
Adicionar ++ , 36 bytes
Experimente online!
Bastante ineficiente. Repete cada número inteiroEu de tal modo que i ≤ 25 x2 e filtra compostos e primos que não contêm n . Finalmente, tomamos on th valor dos números inteiros restantes.
fonte
Japonês
-h
,151311 bytesTente
fonte