Os dois primeiros números de MU são 2 e 3. Todos os outros números de MU são o menor número ainda não exibido que pode ser expresso como o produto de dois números de MU distintos anteriores, exatamente de uma maneira.
Aqui estão os 10 primeiros
2, 3, 6, 12, 18, 24, 48, 54, 96, 162
Tarefa
Dado um número positivo e calcule saída do n th MU-número.
Como é uma competição de código-golfe , você deve tentar tornar seu código-fonte o menor possível.
Respostas:
Pitão,
2221 bytesExperimente online. Suíte de teste.
Indexado a 0.
Explicação
fonte
@
sinal na última linha está desalinhado. Não consigo fazer uma edição sugerida, pois é uma alteração de dois caracteres.Haskell,
8077 bytesExperimente online!
Como funciona
fonte
Geléia , 22 bytes
Um link monádico, indexado em 1.
Experimente online!
Quão?
fonte
R ,
1271181111081051009890 bytes8 bytes graças a Giuseppe.
Experimente online!
fonte
<
precedência era menor do que+
eu não conseguia descobrir o que diabos+g%in%r<3
estava fazendo, e enquanto fazia isso, você jogou as duas partes que eu ia sugerir ... +1n=scan()
vez de uma definição de função para ler a partir de stdin; isso vai te deixar abaixo dos 1000
CJam (32 bytes)
Demonstração online com indexação 0.
Não tenho certeza de que há muito a ser feito além de uma tradução trivial das especificações, com uma exceção: iniciando com uma lista de
[0 1 2 3]
(em vez de[2, 3]
), economizo um byte imediatamente na inicialização e outros dois ao poder fazer0=|
(adicionando apenas o novo elemento porque sua frequência está1
e já está na lista), mas não apresente nenhum elemento falso, pois para todos os itensx
da lista0*x
e1*x
já estão na lista.fonte
Python 2 ,
127118 bytesExperimente online!
fonte
Mathematica, 154 bytes
modificação simples do código encontrado no link oeis
fonte
PHP , 130 bytes
Indexado a 0
Experimente online!
Expandido
PHP , 159 bytes
Indexado a 0
Experimente online!
PHP , 161 bytes
Indexado a 0
Experimente online!
fonte
Mathematica, 140 bytes
fonte
MATL , 25 bytes
Experimente online!
Explicação
fonte
Perl 6 , 96 bytes
Experimente online!
2, 3, { ... } ... *
é uma sequência infinita em que cada elemento que começa com o terceiro é calculado pelo bloco de código delimitado por colchetes. Como o bloco de código recebe seus argumentos por meio da@_
matriz slurpy , ele recebe toda a sequência atual nessa matriz.@_.combinations(2)
é uma sequência de todas as combinações de 2 elementos de@_
..classify({ [*] $_ })
classifica cada tupla 2 por seu produto, produzindo um hash em que os produtos são as chaves e os valores são a lista de 2 tuplas que possuem esse produto..grep(*.value == 1)
seleciona esses pares de valores-chave no hash em que o valor (ou seja, a lista de pares que possuem essa chave como produto) tem um tamanho de 1.».key
seleciona apenas as teclas de cada par. Esta é a lista de produtos que surgem de apenas uma combinação de fatores da sequência atual..sort
classifica os produtos numericamente.first * ∉ @_, ...
encontra o primeiro desses produtos que ainda não apareceu na sequência.fonte
JavaScript (ES6),
119118117 bytesUma função recursiva que recebe um índice baseado em 0.
Quão?
A cada iteração de f () , usamos o último termo m da sequência e uma matriz inicialmente vazia b para identificar o próximo termo. Para cada produto d> m de dois números MU distintos anteriores, fazemos:
e mantenha o valor mínimo de b .
A expressão acima é avaliada da seguinte maneira:
Isso garante que os produtos que podem ser expressos de mais de uma maneira nunca sejam selecionados.
Formatado e comentado
Demo
Mostrar snippet de código
fonte
Haskell ,
117115113 bytesExperimente online!
fonte
n x=(*)<$>x<*>1:x
Python
32 ,167139136133123121120118 bytesExperimente online!
Obrigado a @ Mr.Xcoder e @LeakyNun pelas melhorias!
fonte
p.count(q)==1
parap.count(q)>0
é válido, porque esse é o código que garante a condição "de uma maneira exata" do desafio.p.count(q)-~(q in a)<=3
é equivalente ap.count(q)+(q in a)<3