En aritmética, un número n-liso , donde n es un número primo dado, se define matemáticamente como un número entero positivo que no tiene factores primos mayores que n. Por ejemplo, 42 es 7-liso porque todos sus factores primos son menores o iguales a 7, pero 44 no es 7-liso porque también tiene 11 como factor primo.
Defina un número bastante suave como un número sin factores primos mayores que su propia raíz cuadrada. Por lo tanto, la lista de números bastante suaves puede formularse de la siguiente manera:
- (¡EDITADO!) 1 es un número bastante suave, debido a la falta total de factores primos. (Tenga en cuenta que en la versión original de esta pregunta, 1 fue excluido erróneamente de la lista, por lo que si lo excluye de sus resultados, no se marcará incorrectamente).
- Entre 4 (= 2 2 ) y 8, los números bastante suaves son 2-suaves, lo que significa que tienen 2 como único factor primo.
- Entre 9 (= 3 2 ) y 24, los números bastante suaves son 3-suaves, y pueden tener 2s y 3s en sus factorizaciones primas.
- Entre 25 (= 5 2 ) y 48, los números bastante suaves son 5 suaves y pueden tener 2s, 3s y 5s en sus factorizaciones primas.
- Y así sucesivamente, actualizar los criterios cada vez que se alcanza el cuadrado del siguiente número primo.
La lista de números bastante suaves es fija y comienza de la siguiente manera: 1, 4, 8, 9, 12, 16, 18, 24, 25, ...
Su reto es escribir el código que da salida a todos los números muy suave hasta e incluyendo 10 000 (= 100 2 ). Debe haber al menos un separador (no importa de qué tipo: espacio, coma, nueva línea, cualquier cosa) entre cada número en la lista y el siguiente, pero es completamente irrelevante qué carácter se utiliza.
Como de costumbre, el recuento de bytes más bajo gana, obviamente, simplemente generar la lista no será demasiado beneficioso para usted aquí. ¡Buena suerte!
1
)Respuestas:
En realidad, 11 bytes
Pruébalo en línea!
No incluye 1.
Explicación:
fuente
Jalea , 12 bytes
Pruébalo en línea!
Cómo funciona
fuente
Brachylog ,
2119 bytes1 byte gracias a Fatalize, por la inspiración de otro 1 byte.
Pruébalo en línea!
Toma alrededor de 6 segundos aquí.
Solución anterior de 21 bytes
Pruébalo en línea!
Toma alrededor de 6 segundos aquí.
fuente
100^:4reP$pot^<=P@w\
es un byte más corto, aunque menos elegante.Haskell, 53 bytes
No tengo tiempo para jugar golf ahora, pero quiero ilustrar un método para probar si
n
es bastante sencillo : multiplique los números de1
asqrt(n)
(es decir, calcule un factorial), eleve el producto a una potencia alta y compruebe si el resultado es un múltiplo den
.Cambie a
r=[2..10^4]
si1
no se debe generar.fuente
8
requiere).Pyth ,
1615 bytes1 byte gracias a Jakube.
Pruébalo en línea!
fuente
*dd
con esa función?05AB1E,
161413 bytesExplicación
Pruébalo en línea
fuente
4°
es corto para 10000.Matlab,
5857565248 bytesPara cada número, verifica si todos los factores al cuadrado no son mayores que el número mismo. En caso afirmativo, muestra ese número.
Gracias a @Luis Mendo por jugar este enfoque.
Otro enfoque (50 bytes):
Para cada número se calcula si su máximo factor primo al cuadrado es menor que el número mismo. Luego lo usa para indexar.
fuente
for k=4:1e4,if factor(k).^2<=k,disp(k);end;end
SQF ,
252227220Formato de script estándar:
Incluya el preprocesador en la cadena de compilación cuando llame, por ejemplo:
execVM "FILENAME.sqf"
call compile preprocessFile "FILENAME.sqf"
Esto escribe en el registro de Chat del sistema, que es lo más cercano que SQF tiene para stdout
fuente
C, 113 bytes
Ideone it!
fuente
Pyke,
131211 bytesPruébalo aquí!
(El enlace solo sube a 10 ^ 3 porque 10 ^ 4 se agota)
fuente
J, 20 bytes
Resultado:
Pruébelo en línea aquí.
fuente
Python 2, 90 bytes
Ideone it!
fuente
R, 97 bytes
sin golf
fuente
Pyth, 12 bytes
No incluye 1.
fuente