O título do vídeo mais recente de Numberphile , 13532385396179 , é um ponto fixo da seguinte função f nos números inteiros positivos:
Seja n um número inteiro positivo. Escreva a fatoração primária da maneira usual, por exemplo, 60 = 2 2 · 3 · 5, na qual os números primos são escritos em ordem crescente, e os expoentes de 1 são omitidos. Em seguida, traga expoentes para a linha e omita todos os sinais de multiplicação, obtendo um número f (n). [...] por exemplo, f (60) = f (2 2 · 3 · 5) = 2235.
(A definição acima é retirada do Problema 5 de Cinco Problemas de $ 1.000 - John H. Conway )
Observe que f (13532385396179) = f (13 · 53 2 · 3853 · 96179) = 13532385396179.
Tarefa
Tome um número inteiro composto positivo n
como entrada e saída f(n)
.
Outro exemplo
48 = 2 4 · 3, então f (48) = 243.
Casos de teste
Mais casos de teste estão disponíveis aqui .
4 -> 22
6 -> 23
8 -> 23
48 -> 243
52 -> 2213
60 -> 2235
999 -> 3337
9999 -> 3211101
fonte
Respostas:
Python,
166162159 bytesVocês são muito melhores. Isto é o que eu usei! (o algoritmo que resolveu chama isso)
fonte
Braquilog , 8 bytes
Experimente online!
Explicação
Você pode usar
ℕ₂ˢ
( selecione todos os números inteiros maiores ou iguais a 2 ) em vez de;1x
, o que provavelmente é mais legível e mais no espírito do Brachylog.fonte
Gelatina , 6 bytes
Experimente online!
Explicação
fonte
V
= "concatenar com uma única string e avaliar como Jelly"Ḍ
(Converter de decimal para inteiro)?FḌ
no passado - essa é uma boa dica!Mathematica,
4336 BytesExperimente online!
fonte
DeleteCases
é longo, você pode usar/.1->""
ou/.1->##&[]
(forma alternativa de/.1->Nothing
1
para impedir que ele analise como... / (0.1)
.CJam , 8 bytes
Experimente online!
Explicação
fonte
e_
achatar, já que é para isso que existe, mas isso não altera a pontuação.e_
usar apenas o achatamento profundo e a usar:~
sempre que é apenas um nível.05AB1E , 10 bytes
Experimente online!
fonte
05AB1E ,
1211 bytesExperimente online!
Explicação
fonte
48
.Pitão, 12 bytes
Tente!
alternativa, 12 bytes
Tente isso!
explicação
fonte
Pitão, 11 bytes
Tente aqui
fonte
Python 2 , 99 bytes
Experimente online!
Se as entradas estiverem restritas a ficar abaixo
2147483659
, ambasstr(...)
poderão ser substituídas`...`
salvando 6 bytes (este programa será muito lento para os números afetados de qualquer maneira!).fonte
Ohm , 11 bytes
Experimente online!
Explicação
fonte
Japonês , 19 bytes
Teste online!
Explicação
fonte
PHP , 88 bytes
Experimente online!
fonte
C #,
206100 bytesVersão completa / formatada:
fonte
Javascript - 91 bytes
Explicação
fonte
Java 8, 103 caracteres
Solução bastante simples.
Ungolfed:
fonte
Oitava , 69 bytes
Experimente online!
Acabou sendo bastante longo, mas isso gerará a saída desejada.
Basicamente, usamos a função histograma para contar o número de ocorrências dos valores únicos na fatoração primária do valor de entrada.
factor()
função fornece os fatores primos em ordem crescenteunique()
valores nessa matrizhist()
retorna o número de ocorrênciasDepois de termos as duas matrizes (uma para fatores únicos, uma para contagens), concatenamos as matrizes verticalmente (uma em cima da outra) e depois achatamos. Isso intercala os fatores com contagens.
Finalmente, exibimos o resultado como uma string, garantindo pular qualquer 1 na matriz final. A única vez que 1 pode aparecer é se a contagem for 1, porque 1 nunca será um fator primordial. Essa eliminação é feita antes da conversão para uma string, para que não afete coisas como o número 10.
fonte
Ruby , 45 + 7 bytes
Requer a bandeira
-rprime
.Experimente online!
fonte
Pitão - 16 bytes
Tente
Outra solução:
fonte
FN
porV
.r8
(codificação de comprimento de execução) parece ser útil.R , 72 bytes
Requer o
pracma
pacote, que não está instalado no TIO.fonte