Desde Euclides, sabemos que existem infinitos primos. O argumento é por contradição: se há apenas um número finito muitos, digamos , então certamente não é divisível por qualquer desses números primos, então o seu primeiro-factorização deve produzir um novo primeiro que não estava na lista. Portanto, a suposição de que apenas primos finitos existem é falsa.
Agora vamos supor que é o único primo. O método acima fornece como um novo (possível) primo. A aplicação do método novamente produz e, em seguida, , depois , então e são novos números primos, etc. No caso em que obtemos um número composto, apenas obtemos o número primo menos novo. Isso resulta em A000945 .
Desafio
Dado um primo e um número inteiro calculam o ésimo termo da sequência definida da seguinte forma:
Essas sequências são conhecidas como sequências de Euclides-Mullin .
Exemplos
Para :
1 2
2 3
3 7
4 43
5 13
6 53
7 5
8 6221671
9 38709183810571
Para ( A051308 ):
1 5
2 2
3 11
4 3
5 331
6 19
7 199
8 53
9 21888927391
Para ( A051330 )
1 97
2 2
3 3
4 11
5 19
6 7
7 461
8 719
9 5
(,0({q:)1+*/)^:
por 15 bytes, retornando a sequência atén
(indexada a zero)verb conj
produziu um advérbio .^:
, e, em seguida, que se torna um verbo que se aplica ao arg direita. Eu acho que é isso que está acontecendo gramaticalmente.Python 2 , 56 bytes
Experimente online!
Comentado
Experimente online!
fonte
int(input())
outra formai
é umstr
?input()
sempre retorna strings. No Python 2,input()
tenta avaliar a entrada. Estou usando o Python 2 neste caso, porque o código resultante é um pouco menor. Para código real , você deve tentar usar o Python 3, pois é a versão mais recente e mais suportada do Python.Geléia , 8 bytes
Um programa completo (usando indexação zero) aceitandoP0 0 e n que imprime uma representação Jelly da lista de P0 0 para Pn inclusive. (Como um link diádico,
n=0
retornaremos um número inteiro, não uma lista.)Experimente online!
Quão?
fonte
05AB1E , 8 bytes
A primeira entrada én , segundo é primo p .
Experimente online ou muito mais casos de teste (o conjunto de testes não possui os casos de teste paran ≥ 9 , por causa de p = 2 e p = 5 o built-in
f
leva muito tempo).Explicação:
fonte
λλP>fW
(6 bytes) com saída como uma lista infinita eλ£λP>fW
(7 bytes) pela primeira vez£
mas o último elemento!£
mas para o último elemento! ", Como.£
? ;) EDIT: Na verdade, ele não funciona exatamente como£
para listas .. usando uma lista como[1,2]
com.£
resultados em dois itens soltos com os últimos 1 e 2 itens (ou seja,12345
torna-se em[5,45]
vez de[45,3]
ou[3,45]
com12S.£
) ..λ.£
deve funcionar. Eu usei flag como em uma função adicional associada aλ
(consulte esta conversa com Adnan ). Eu basicamente quero um sinalizadorè
que, ao executá-λè...}
lo, gere o n-ésimo elemento em vez do fluxo infinito (assim comoλ£
funcionaria para gerar os primeiros n elementos).£
ambiente recursivo. Sim, entãoλ.£
realmente não vai funcionar, meu mal. Nice 6-byter independentemente. Agora você só precisa aguardar a resposta do @flawr , seja ela permitida ou não (provavelmente é).Japonês ,
1211 bytesEsforçou-se para acertar este, por isso pode ter perdido algo que pode ser jogado no golfe.
Toma
n
como a primeira entrada ep1
, como uma matriz singleton, como a segunda. Retorna os primeirosn
termos. Mudeh
parag
para retornar on
termo indexado em 0.Tente
fonte
Retina , 56 bytes
Experimente online! Recebe entrada como o número de novos termos a serem adicionados na primeira linha e o (s) termo (s) inicial (is) na segunda linha. Nota: Fica muito lento, pois usa fatoração unária, portanto, é necessário criar uma sequência do comprimento relevante. Explicação:
Substitua as vírgulas nos termos de propagação por se
*
acrescente a*
. Isso cria uma expressão Retina para uma sequência de comprimento do produto dos valores.Repita o loop o número de vezes indicado pela primeira entrada.
Substitua temporariamente o número na primeira linha por
$
ae anteceda_
a à segunda linha e avalie o resultado como um programa Retina, acrescentando, assim, uma sequência de_
s de comprimento 1 mais que o produto dos valores.Encontre o menor fator não trivial do número em decimal e adicione um
*
pronto para o próximo loop.Exclua a entrada da iteração.
Exclua o último
*
.Substitua os restantes
*
s por,
s.fonte
JavaScript (Node.js) , 54 bytes
Experimente online!
Ungolfed
fonte
bash + núcleo GNU, 89 bytes
TIO
fonte
Ruby 2.6, 51 bytes
(2..)
, o intervalo infinito a partir de 2, ainda não é suportado no TIO.Essa é uma função recursiva que pega um valor inicial
s
(pode ser primo ou composto), retorna quando n = 0 (edite: observe que isso significa que é indexado a zero), retorna o menor númerol
maior que 1 e divide-(s+1)
quando n = 1 e, de outro modo, se repete coms=l*s
en=n-1
.fonte
(2..)
por2.step
(apenas 1 byte a mais) para permitir que ele funcionasse no TIO e tudo foi interrompido por um. Experimente online!APL (Dyalog Extended) , 15 bytes
Esta é uma implementação bastante simples do algoritmo que usa os fatores primários muito úteis do Extended
⍭
,. Experimente online!Explicação
fonte
Pari / GP , 47 bytes
Experimente online!
fonte
Stax , 9 bytes
Execute e depure
Toma e (indexado a zero) para entrada. Produz .
p0
n
pn
fonte
C (gcc) ,
5453 bytesExperimente online!
-1 byte graças ao ceilingcat
fonte
Perl 6 ,
3332 bytes-1 byte graças a nwellnhof
Experimente online!
Bloco de código anônimo que pega um número e retorna uma lista lenta.
Explicação:
fonte
-+^[*](@_)
salva um byte.Haskell , 49 bytes
Experimente online!
Retorna a sequência infinita como uma lista lenta.
Explicação:
fonte