Crie a menor função, programa ou expressão que calcule A073329 , ou seja, a(n)
é o enésimo número que possui n fatores primos distintos. Entrada é o número de elementos na sequência a retornar. 0 < n
. Não estou preocupado com a precisão inteira. Eu só quero o algoritmo. Para idiomas que não suportam números inteiros arbitrariamente grandes, fingiremos que sim.
Você pode encontrar casos de teste seguindo o link para o OEIS fornecido acima.
ATUALIZAR:
Deixe-me esclarecer que você precisa retornar uma sequência inteira do seu programa, função ou expressão. Em outras palavras, f(x)
deve calcular a(n)
para todos n
de 1 a x
. Dado x
8, sua função deve retornar 2, 10, 60, 420, 4290, 53130, 903210, 17687670
como uma matriz ou outra estrutura de dados apropriada.
output a(1), ... a(n)
em vez de retorno algo, como um conjunto de ...Respostas:
Python, 144 caracteres
Demora cerca de 2 minutos para concluir até x = 8.
fonte
Java, 170 caracteres em uma linha
Atualização, +77 caracteres IOL
fonte
Java (Sem Golfe)
Usa um algoritmo de peneira. É bem rápido. (6 segundos) Trabalhará com precisão até
8
, provavelmente falhará em algo mais alto.fonte
JavaScript, 149 caracteres
Parece não responder por n> = 6, então não testei quanto tempo leva (meu navegador exibe uma notificação de script interrompida a cada 10 segundos ou mais, portanto, não posso cronometrar com precisão e não quero travar completamente se eu marque "não mostrar isso de novo" ...)
Editar: para retornar a matriz, são 200 caracteres (+51) :
fonte
J, 32 bytes
Mas como estou respondendo minha pergunta tão tarde, deixaremos essa resposta como uma curiosidade.
fonte