Antidivisores de um número

Os antidivisores são números que não dividem exatamente um determinado número, mas ficam o mais longe possível de fazê-lo. Eles podem ser encontrados seguindo um conjunto simples de regras:

  • Verifique cada número maior que 1 e menor que n.
  • Cada número verificado não pode ser um divisor de n.
  • Se o número verificado for ímpar e for um divisor de n * 2 - 1 ou n * 2 + 1, ele será um antidivisor.
  • Se o número verificado for par e for um divisor de n * 2, ele será um antidivisor.

Dado um número inteiro n, implemente uma função que retorne um vetor contendo os antidivisores de n em ordem crescente.

Exemplos

antiDivisors(10) ➞ {3, 4, 7}
// 3 é um divisor de 21 (10 * 2 + 1)
// 4 é um divisor de 20 (10 * 2)
// 7 é um divisor de 21

antiDivisors(12) ➞ {5, 8}
// 5 é um divisor de 25 (12 * 2 + 1)
// 8 é um divisor de 24 (12 * 2)

antiDivisors(20) ➞ {3, 8, 13}
// 3 é um divisor de 39 (20 * 2 - 1)
// 8 é um divisor de 40 (20 * 2)
// 13 é um divisor de 39

Notas

Retorne uma coleção vazia quando n <= 1. O valor fornecido n pode ser qualquer número inteiro, seja ele positivo, negativo ou 0.