Parece que muitas pessoas gostariam de ter isso, então agora é uma sequência deste desafio !
Definição : uma potência primária é um número natural que pode ser expresso na forma p n, em que p é uma primária e n é um número natural.
Tarefa : Dada uma potência principal p n > 1, retorne a potência n.
Casos de teste :
input output
9 2
16 4
343 3
2687 1
59049 10
Pontuação : Este é o código-golfe . A resposta mais curta em bytes vence.
code-golf
number
arithmetic
primes
Freira Furada
fonte
fonte
Respostas:
05AB1E , 2 bytes
Experimente online!
fonte
Ò
Empurre a lista de fatores primos (com duplicatas) eg
: Empurre o comprimento .Python 3 , 49 bytes
Experimente online!
Saídas
True
vez de 1 ( conforme permitido pelo OP ). Função recursiva que encontra repetidamente o fator mais baixo e depois chama a função novamente com a próxima potência mais baixa até atingir 1. Essa é uma extensão da minha resposta à pergunta anterior.fonte
Pitão, 2
Contar fatores primos:
Teste online .
fonte
Python 2 , 37 bytes
Experimente online!
Conta fatores. Aparentemente eu escrevi o mesmo golfe em 2015.
Estreitamente supera o não recursivo
Python 2 , 38 bytes
Experimente online!
fonte
Utilitários Bash + GNU, 22
Experimente online!
fonte
factor|sed s/\ //|wc -w
?factor|tr -cd \ |wc -c
?dc ,
5041 bytesExperimente online!
Pega entrada da parte superior da pilha (em TIO, coloque a entrada no cabeçalho para carregá-la na pilha antes da execução). Saídas para stdout.
Explicação
Registradores utilizados:
i
: o divisor de avaliação atual, enquantoX
está em execução. Mais tarde, o divisor que encontramos.X
: a macrodli1+dsi%0<X
, que tem o efeito "incrementoi
, verifique o módulo com o valor na pilha (que será a entrada original). Se não for zero, repita".Y
: a macrodli/dli<Y
, que tem o efeito "Adicione à pilha uma cópia da parte superior atual da pilha, dividida pori
. Repita atéi
ser atingido."Programa completo:
fonte
face , 86 bytes
Viva, mais que Java!
Experimente online!
Gosto particularmente do truque de usar o valor de retorno de
sscanf
. Normalmente, o valor de retorno seria descartado, mas aqui sempre será 1, porque estamos sempre lendo um único número como entrada. Podemos tirar vantagem disso atribuindo seu valor de retorno à variável1
, salvando os 2 bytes que seriam necessários para atribuir1
a 1 explicitamente.fonte
Poliglota da linguagem Attache e Wolfram (Mathematica) , 10 bytes
Experimente o Attache online! Experimente o Mathematica online!
Simplesmente integrado para calcular o número de fatores primos N possui.
Explicação
Como N = p k , Ω ( N ) = Ω ( p k ) = k , o resultado desejado.
fonte
Java 8, 59 bytes
Um lambda de
int
paraint
.Experimente Online
fonte
J, 4 bytes
q:
fornece a lista de fatores principais,#
fornece o comprimento da lista.Experimente online!
fonte
R , 37 bytes
Experimente online!
fonte
sum(x|1)
é quase sempre mais curto quelength(x)
Execute e depure
Comprimento da fatoração principal.
fonte
MATL , 3 bytes
Experimente online!
Explicação:
fonte
Geléia ,
32 bytesExperimente online!
fonte
Espaço em branco, 141 bytes
Letras
S
(espaço),T
(tabulação) eN
(nova linha) adicionadas apenas como destaque.[..._some_action]
adicionado apenas como explicação.Experimente online (apenas com espaços brutos, guias e novas linhas).
Explicação em pseudo-código:
Exemplo de execução:
input = 9
O programa para com um erro: Nenhuma saída encontrada.
fonte
Braquilog , 2 bytes
Experimente online!
Explicação
fonte
Python 2 , 62 bytes
Experimente online!
Nada extravagante aqui.
fonte
Japonês , 3 bytes
Experimente online!
Explicação:
fonte
Na verdade , 2 bytes
Experimente online!
fonte
Haskell , 27 bytes
Experimente online!
Conta fatores. Comparar:
Haskell , 28 bytes
Experimente online!
Haskell , 28 bytes
Experimente online!
Haskell , 30 bytes
Experimente online!
fonte
Oitava , 18 bytes
Experimente online!
Faz o que diz no estanho: Número de elementos diferentes de zero na fatoração primária da entrada.
fonte
Cjam, 5 bytes
Experimente Online!
Explicação:
Builtins são ótimos!
fonte
rimf,
(programa completo) e{mf,}
(função) seriam válidos.QBasic, 51 bytes
Usa o mesmo algoritmo da solução "Recuperar o principal" para encontrar a base e, em seguida, usa regras de logaritmos para obter o expoente:l o g( pn) = n ⋅ l o g( P ) .
fonte
Gaia , 2 bytes
Experimente online!
fonte
JavaScript (ES6), 37 bytes
Experimente online!
fonte
Perl 6 , 36 bytes
Procura o primeiro fator e
(2..*).first: $_%%*
, a partir daí, calcula o valor aproximado (os logs não serão precisos) e o arredonda.Experimente online!
fonte
Pari / GP , 8 bytes
Experimente online!
Pari / GP , 14 bytes
Experimente online!
fonte
Raquete , 31 bytes
Experimente online!
fonte
Perl 6 , 18 bytes
Experimente online!
Bloco de código anônimo que obtém uma lista de fatores e a obriga a um número.
fonte
JavaScript (Node.js) , 29 bytes
Experimente online! Nota: A pilha transborda para entradas maiores.
fonte