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 - 1 o n * 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 39

Notas

Devuelve un arreglo vacío cuando n <= 1. El valor dado n puede ser cualquier entero: positivo, negativo o 0.