Números semiperfectos
Un número semiperfecto / pseudoperfecto es un número entero igual a la suma de una parte o de todos sus divisores (excluyéndose a sí mismo). Los números que son iguales a la suma de todos sus divisores son perfectos.
Divisors of 6 : 1,2,3
6 = 1+2+3 -> semiperfect (perfect)
Divisors of 28 : 1,2,4,7,14
28 = 14+7+4+2+1 -> semiperfect (perfect)
Divisors of 40 : 1,2,4,5,8,10,20
40 = 1+4+5+10+20 or 2+8+10+20 -> semiperfect
Primitivo
Un número semiperfecto primitivo es un número semiperfecto sin divisores semiperfectos (excepto sí mismo :))
Divisors of 6 : 1,2,3
6 = 1+2+3 -> primitive
Divisors of 12 : 1,2,3,4,6
12 = 2+4+6 -> semiperfect
Como referencias, utilice la serie OEIS A006036 para números primarios semiperfectos y A005835 para semiperfectos.
Objetivo
Escribe un programa o una función en cualquier idioma. Tomará como entrada un número n como parámetro de función o desde STDIN / la alternativa más cercana a su idioma, y generará todos los números primitivos semi-perfectos del 1 al n (inclusive).
La salida debe formatearse como 6[separator]20[separator]28[separator]88...
donde [separador] es como nueva línea, un espacio o una coma. No debe haber un [separador] inicial ni uno final.
Editar: puede dejar una nueva línea final
Ejemplos
entrada:
5
salida:
entrada:
20
salida:
6
20
entrada:
100
salida:
6 20 28 88
Puntuación
Este es el código de golf, por lo que gana el código más corto en bytes.
No intentes engañarnos con lagunas, por favor :).
¡Me alegraría que pudieras dejar una explicación de tu código de golf una vez que creas que has terminado de jugarlo!
K
aY
para construirY
, que se necesita en otros lugares. Sin embargo, podría imprimir por separado, como con enaYKK
lugar deeaYK
. Sin embargo, son 4 bytes de cualquier manera.Julia,
161149 bytesEsto crea una función sin nombre que acepta un número entero como entrada e imprime los números en STDOUT separados por una nueva línea. Para llamarlo, dale un nombre, por ejemplo
f=n->...
.Ungolfed + explicación:
Ejemplos:
fuente
JavaScript ( ES6 ) 172
Ejecute el fragmento a continuación para probar
fuente
CJam, 54 bytes
Esta solución se siente un poco incómoda, pero como ha habido pocas respuestas y ninguna en CJam, pensé en publicarla de todos modos:
Una buena parte del incremento sobre la solución Pyth publicada proviene del hecho de que, por lo que pude encontrar, CJam no tiene un operador para enumerar todos los subconjuntos de un conjunto. Así que tomó algo de trabajo completar eso con los operadores disponibles. Por supuesto, si realmente hay un operador simple que me perdí, pareceré un poco tonto. :)
Explicación:
Pruébalo en línea
fuente
PHP, 263 bytes
Pruébalo en línea!
Expandido
fuente
Jalea , 22 bytes
Pruébalo en línea!
Explicación
fuente