Antidivisores de um número
Os antidivisores são números que não dividem um determinado número e ficam o mais longe possível de fazê-lo. Eles podem ser encontrados seguindo algumas regras simples:
- Verifique cada número maior que 1 e menor que
n. - Cada número verificado não pode ser divisor de
n. - Se o número verificado for ímpar e for divisor de
n * 2 - 1oun * 2 + 1, ele será um antidivisor. - Se o número verificado for par e for divisor de
n * 2, ele será um antidivisor.
Dado um número inteiro n, implemente uma função que retorne um array contendo os antidivisores de n em ordem crescente.
Exemplos
antiDivisors(10) ➞ [3, 4, 7]
// 3 é divisor de 21 (10 * 2 + 1)
// 4 é divisor de 20 (10 * 2)
// 7 é divisor de 21
antiDivisors(12) ➞ [5, 8]
// 5 é divisor de 25 (12 * 2 + 1)
// 8 é divisor de 24 (12 * 2)
antiDivisors(20) ➞ [3, 8, 13]
// 3 é divisor de 39 (20 * 2 - 1)
// 8 é divisor de 40 (20 * 2)
// 13 é divisor de 39Observações
Retorne uma coleção vazia quando n <= 1. O valor n pode ser qualquer número inteiro, seja ele positivo, negativo ou 0.