Para un entero positivon
con la factorización prima n = p1^e1 * p2^e2 * ... pk^ek
donde p1,...,pk
son primos y e1,...,ek
enteros positivos, podemos definir dos funciones:
Ω(n) = e1+e2+...+ek
El número de divisores primos (contados con multiplicidad) ( A001222 )ω(n) = k
El número de divisores primos distintos. ( A001221 )
Con esas dos funciones definimos el exceso e(n) = Ω(n) - ω(n)
( A046660 ). Esto se puede considerar como una medida de qué tan cerca está un número de estar libre de cuadrados.
Desafío
Para un n
retorno entero positivo dado e(n)
.
Ejemplos
Porque n = 12 = 2^2 * 3
tenemos Ω(12) = 2+1
y ω(12) = 2
y por lo tanto e(12) = Ω(12) - ω(12) = 1
. Para cualquier número n
libre de cuadrados que tengamos e(n) = 0
. Los primeros términos son
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
^
es poderRespuestas:
MATL ,
75 bytesPruébalo en línea! O verificar todos los casos de prueba .
Explicación
fuente
factor
funciona en MATL, realmente genial =)YF
(en la versión de 7 bytes del código) oYf
(5 bytes)? Este último es como en MATLABBrachylog , 11 bytes
Pruébalo en línea!
Explicación
fuente
Mathematica, 23 bytes
Muy aburrido.
FactorInteger
ya ocupa 13 bytes, y no puedo ver mucho de lo que se puede hacer con los 10 restantes.fuente
Jalea , 5 bytes
Pruébalo en línea!
Verifique todos los casos de prueba.
La respuesta del puerto de Luis Mendo en MATL .
fuente
ÆF’SṪ
habría funcionado, creo¬
confundirme. No sabía que estaba vectorizado05AB1E , 6 bytes
Explicación
Pruébalo en línea!
fuente
J
1110 bytesGuardado 1 byte gracias a Jonás .
fuente
1#.1-~:@q:
por 10 bytes. Buena idea usando~:
BTW.Pyth, 7 bytes
Pruébalo en línea.
fuente
C, 74 bytes
Ideone it!
fuente
Python 2,
5756 bytes¡Gracias a @JonathanAllan por jugar golf en 1 byte!
Pruébalo en Ideone .
fuente
n/k%k<1
Haskell, 65 bytes
fuente
05AB1E , 4 bytes
Puerto de @LuisMendo MAT respuesta 's .
Pruébelo en línea o verifique los primeros 15 casos de prueba .
Explicación:
fuente
Python 2,
100999896 bytesLa mayor parte del código está ocupado por una versión de golf de esta respuesta SO , que almacena los factores primos de la entrada
f
. Luego, simplemente usamos la manipulación de conjuntos para calcular los factores en exceso.¡Gracias a Leaky Nun por guardar
13 bytes!fuente
Brachylog , 11 bytes
Pruébalo en línea!
Verifique todos los casos de prueba. (El contenedor es más largo que la función ...)
fuente
SILOS , 113 bytes
Pruébalo en línea!
Un puerto de mi respuesta en C .
fuente
Javascript (ES6),
535146 bytesGuardado 5 bytes gracias a Neil
Ejemplo:
fuente
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, con entrada en
$1
y salida a stdout.Empezamos
IFS
con una nueva línea, para que la expansión"${f[*]}"
esté separada por una nueva línea. Utilizamos la sustitución aritmética para imprimir la diferencia entre el número de palabras en la factorización con el resultado del filtradouniq
. El número en sí mismo se imprime como un prefijo porfactor
, pero también está presente después del filtrado, por lo que cae en la resta.fuente
Python, (con sympy) 66 bytes
sympy.factorint
devuelve un diccionario con factores como claves y sus multiplicidades como valores, entonces la suma de los valores esΩ(n)
y el número de valores esω(n)
, entonces la suma de los valores decrementados es lo que queremos.fuente
CJam, 11 bytes
Pruébalo en línea!
Explicación
fuente
C, 158
Al principio está la instrucción goto ... incluso si es más larga que la suya, es más legible y correcta [si no considero que sea demasiado grande ...] un Idioma que tiene 10000 funciones de biblioteca es más que un Idioma que con pocas, 20 o 30 funciones de biblioteca pueden funcionar mejor [porque no podemos recordar todas estas funciones]
fuente
GNU sed + coreutils, 55 bytes
(incluido +1 para
-r
bandera)Entrada en decimal, en stdin; salida en unario, en stdout.
Explicación
fuente
APL (NARS) 35 caracteres, 70 bytes
la función π encuentra la factorización en primo de su argumento; hay pocos que digan que parece claro, pero para mí realiza más operaciones (desde la factorización) que el mínimo ... el rango de caracteres de conteo está fuera de los idiomas de golf porque parece contar demasiado, pero menos que los idiomas de golf ... prueba:
fuente