Definiciones
Dejar m
y n
ser enteros positivos. Decimos que m
es un giro divisor de n
si existen enteros 1 < a ≤ b
tales que n = a*b
y m = (a - 1)*(b + 1) + 1
. Si m
se puede obtener n
aplicando cero o más giros divisores, entonces m
es un descendiente de n
. Tenga en cuenta que cada número es su propio descendiente.
Por ejemplo, considere n = 16
. Podemos elegir a = 2
y b = 8
, desde entonces 2*8 = 16
. Luego
(a - 1)*(b + 1) + 1 = 1*9 + 1 = 10
lo que muestra que 10
es un giro divisor de 16
. Con a = 2
y b = 5
, entonces vemos que 7
es un giro divisor de 10
. Así 7
es un descendiente de 16
.
La tarea
Dado un número entero positivo n
, calcule los descendientes de n
, listados en orden creciente, sin duplicados.
Reglas
No está permitido usar operaciones integradas que calculen los divisores de un número.
Se aceptan programas y funciones completos, y se permite devolver un tipo de datos de recopilación (como un conjunto de algún tipo), siempre que esté ordenado y sin duplicados. El conteo de bytes más bajo gana, y las lagunas estándar no se permiten.
Casos de prueba
1 -> [1]
2 -> [2] (any prime number returns just itself)
4 -> [4]
16 -> [7, 10, 16]
28 -> [7, 10, 16, 25, 28]
51 -> [37, 51]
60 -> [7, 10, 11, 13, 15, 16, 17, 18, 23, 25, 28, 29, 30, 32, 43, 46, 49, 53, 55, 56, 60]
<
para los números naturales, por cada n obtendrá cada número más pequeño que él, pero no por sí mismo. Creo que esto debería ser algo similar. De esta manera, creo que solo 4 sería su propio descendiente (aunque no estoy seguro de eso).