Para um número inteiro positivon
com a fatoração primária n = p1^e1 * p2^e2 * ... pk^ek
onde p1,...,pk
são números primos e e1,...,ek
números inteiros positivos, podemos definir duas funções:
Ω(n) = e1+e2+...+ek
o número de divisores primos (contados com multiplicidade) ( A001222 )ω(n) = k
o número de divisores primos distintos. ( A001221 )
Com essas duas funções, definimos o excesso e(n) = Ω(n) - ω(n)
( A046660 ). Isso pode ser considerado como uma medida de quão perto um número está de estar livre de quadrados.
Desafio
Para um determinado n
retorno inteiro positivo e(n)
.
Exemplos
Para n = 12 = 2^2 * 3
nós temos Ω(12) = 2+1
e ω(12) = 2
portanto e(12) = Ω(12) - ω(12) = 1
. Para qualquer número sem quadrados, n
temos obviamente e(n) = 0
. Os primeiros termos são
1 0
2 0
3 0
4 1
5 0
6 0
7 0
8 2
9 1
10 0
11 0
12 1
13 0
14 0
15 0
^
é poderRespostas:
MATL ,
75 bytesExperimente online! Ou verifique todos os casos de teste .
Explicação
fonte
factor
funciona em MATL, muito legal =)YF
(na versão de 7 bytes do código) ouYf
(5 bytes)? O último é como no MATLABBraquilog , 11 bytes
Experimente online!
Explicação
fonte
Mathematica, 23 bytes
Muito chato.
FactorInteger
já ocupa 13 bytes e não vejo muito o que pode ser feito com os 10 restantes.fonte
Gelatina , 5 bytes
Experimente online!
Verifique todos os casos de teste.
Resposta do porto de Luis Mendo em MATL .
fonte
ÆF’SṪ
teria trabalhado eu acho¬
me confundiu. Eu não sabia que vetorizado05AB1E , 6 bytes
Explicação
Experimente online!
fonte
J,
1110 bytesGuardado 1 byte graças a Jonah .
fonte
1#.1-~:@q:
por 10 bytes. boa idéia usando~:
btw.Pitão, 7 bytes
Experimente online.
fonte
C, 74 bytes
Ideone it!
fonte
Python 2,
5756 bytesGraças a @ JonathanAllan por jogar fora um byte!
Teste em Ideone .
fonte
n/k%k<1
Haskell, 65 bytes
fonte
05AB1E , 4 bytes
Porto de @LuisMendo resposta MATL 's .
Experimente online ou verifique os 15 primeiros casos de teste .
Explicação:
fonte
Python 2,
100999896 bytesA maior parte do código é utilizada por uma versão em golf desta resposta do SO , que armazena os principais fatores da entrada
f
. Então, simplesmente usamos a manipulação de conjuntos para calcular os fatores em excesso.Agradecimentos a Leaky Nun por salvar
13 bytes!fonte
Braquilog , 11 bytes
Experimente online!
Verifique todos os casos de teste. (O wrapper é mais longo que a função ...)
fonte
SILOS , 113 bytes
Experimente online!
Uma porta de minha resposta em C .
fonte
Javascript (ES6),
535146 bytesGuardado 5 bytes graças a Neil
Exemplo:
fonte
r
de forma recursiva:f=(n,i=2)=>i<n?n%i?f(n,i+1):f(n/=i,i)+!(n%i):0
.Bash, 77 bytes
Programa completo, com entrada
$1
e saída para stdout.Definimos o
IFS
início de uma nova linha, para que a expansão"${f[*]}"
seja separada por nova linha. Usamos substituição aritmética para imprimir a diferença entre o número de palavras na fatoração com o resultado da filtragemuniq
. O número em si é impresso como prefixo porfactor
, mas também está presente após a filtragem; portanto, cai na subtração.fonte
Python, (com sympy) 66 bytes
sympy.factorint
retorna um dicionário com fatores como chaves e suas multiplicidades como valores; portanto, a soma dos valores éΩ(n)
e o número de valoresω(n)
; portanto, a soma dos valores decrescentes é o que queremos.fonte
CJam, 11 bytes
Experimente online!
Explicação
fonte
C, 158
No começo, há a instrução goto ... mesmo que seja mais longa que a sua, é mais legível e correta [se eu não considerar n muito grande ...] uma linguagem que possui 10000 funções de biblioteca é mais do que uma linguagem que com poucas, 20 ou 30 funções de biblioteca podem fazer tudo melhor [porque não conseguimos lembrar de todas essas funções]
fonte
GNU sed + coreutils, 55 bytes
(incluindo +1 para
-r
sinalizador)Entrada em decimal, em stdin; saída em unário, em stdout.
Explicação
fonte
APL (NARS) 35 caracteres, 70 bytes
a função π encontra a fatoração no início de seu argumento; há poucos a dizer que parece claro, mas para mim faz mais operações (da fatoração) do que o mínimo ... o intervalo de caracteres de contagem está fora dos idiomas de golfe porque parece muito contar, mas menos do que não idiomas de golfe ... teste:
fonte