Definiciones
Dejar my nser enteros positivos. Decimos que mes un giro divisor de nsi existen enteros 1 < a ≤ btales que n = a*by m = (a - 1)*(b + 1) + 1. Si mse puede obtener naplicando cero o más giros divisores, entonces mes un descendiente de n. Tenga en cuenta que cada número es su propio descendiente.
Por ejemplo, considere n = 16. Podemos elegir a = 2y b = 8, desde entonces 2*8 = 16. Luego
(a - 1)*(b + 1) + 1 = 1*9 + 1 = 10
lo que muestra que 10es un giro divisor de 16. Con a = 2y b = 5, entonces vemos que 7es un giro divisor de 10. Así 7es 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).