fundo
Um número n
pode ser descrito como B
-rough se todos os fatores primos n
excederem estritamente B
.
O desafio
Dados dois números inteiros positivos B
e k
, k
B
imprima os primeiros números -rough.
Exemplos
Let f(B, k)
Ser uma função que retorna o conjunto contendo os primeiros k
B
números -rough.
> f(1, 10)
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
> f(2, 5)
1, 3, 5, 7, 9
> f(10, 14)
1, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59
code-golf
number-theory
primes
factoring
Addison Crump
fonte
fonte
B
?n
como números primos. Se todos esses números primos forem maiores queB
, n éB
-rough.Respostas:
Haskell ,
5344 bytesExperimente online!
Graças a H.PWiz por -9 bytes!
fonte
(>b)
parte dentro da compreensão (que não funciona), mas não o contrário. Obrigado!Python 3 ,
80, 75 bytesExperimente online!
Obrigado a shooqie por salvar 5 bytes.
Isso pressupõe que o número k'th B-áspero nunca excederáB∗k , o que eu não sei como provar, mas parece uma suposição bastante segura (e não consigo encontrar nenhum contra-exemplo).
Solução alternativa:
Python 2 , 78 bytes
Experimente online!
Esta solução não faz a solução acima. E é muito mais eficiente.
fonte
lambda B,k:[i for i in range(1,-~B*k)if all(i%j for j in range(2,B+1))][:k]
?Geléia , 7 bytes
Experimente online!
fonte
Perl 6 ,
3532 bytes-3 bytes graças a nwellnof!
Experimente online!
Um bloco de código anônimo que usa dois números inteiros e retorna uma lista de números inteiros.
Explicação
fonte
all
faz?all
verifica se todos os elementos da lista são verdadeiros. Eu estarei adicionando uma explicação para toda a coisa logo[&]
vez deall
.all
não está mais sendo usado dessa maneira, por isso devo atualizar minha resposta.all
cria uma junção dos valores no intervalo2..b
e todas as operações executadas na junção são executadas em todos os valores simultaneamente. Quando é avaliada em contexto booleano pelogrep
, este colapsa em se todos os valores na junção são truthy, ou seja, diferente de zeroCasca ,
98 bytesExperimente online!
TomaB como primeiro e k como segunda entrada.
fonte
Carvão , 33 bytes
Experimente online! Link é a versão detalhada do código. Explicação:
Entrada
B
ek
.Defina
z
como 0.Repita até termos
k
valores.Incremento
z
.Divida
z
por todos os números de2
atéB
e veja se o restante é zero.Caso contrário, empurre
z
para a lista vazia predefinida.Transmitir a lista para string e enviá-la implicitamente.
fonte
JavaScript (ES6), 68 bytes
Toma entrada como
(b)(k)
.Experimente online!
Comentado
fonte
Gelatina , 10 bytes
Experimente online!
Como funciona
fonte
JavaScript (Node.js) , 68 bytes
Experimente online!
fonte
APL (NARS), 52 caracteres, 104 bytes
Acima, parece que as linhas após 'r ← afw; i' têm nomes 1 2 3; test:
fonte
05AB1E , 9 bytes
Experimente online ou verifique todos os casos de teste .
Explicação:
fonte