Antidivisores de un número
Los antidivisores son números que no dividen un número dado por el mayor margen posible, y se pueden encontrar siguiendo un conjunto sencillo de reglas:
- Se comprueba cada número mayor que 1 y menor que
n. - Cada número comprobado no debe ser un divisor de
n. - Si el número comprobado es impar y es un divisor de
n * 2 - 1on * 2 + 1, es un antidivisor. - Si el número comprobado es par y es un divisor de
n * 2, es un antidivisor.
Dado un entero n, implementa una función que devuelva un arreglo con los antidivisores de n ordenados de menor a mayor.
Ejemplos
anti_divisors(10) ➞ [3, 4, 7]
// 3 es un divisor de 21 (10 * 2 + 1)
// 4 es un divisor de 20 (10 * 2)
// 7 es un divisor de 21
anti_divisors(12) ➞ [5, 8]
// 5 es un divisor de 25 (12 * 2 + 1)
// 8 es un divisor de 24 (12 * 2)
anti_divisors(20) ➞ [3, 8, 13]
// 3 es un divisor de 39 (20 * 2 - 1)
// 8 es un divisor de 40 (20 * 2)
// 13 es un divisor de 39Notas
Devuelve un arreglo vacío cuando n <= 1. El valor dado n puede ser cualquier entero: positivo, negativo o 0.