Antidivisores de um número
Os antidivisores são números que não dividem um determinado número pela maior margem possível, e podem ser encontrados seguindo um conjunto simples de regras:
- Todo número maior que 1 e menor que
né verificado. - Todo número verificado não deve 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 inteiro n, implemente uma função que retorne uma lista contendo os antidivisores de n ordenados em ordem crescente.
Exemplos
anti_divisors(10) ➞ [3, 4, 7]
# 3 is a divisor of 21 (10 * 2 + 1)
# 4 is a divisor of 20 (10 * 2)
# 7 is a divisor of 21
anti_divisors(12) ➞ [5, 8]
# 5 is a divisor of 25 (12 * 2 + 1)
# 8 is a divisor of 24 (12 * 2)
anti_divisors(20) ➞ [3, 8, 13]
# 3 is a divisor of 39 (20 * 2 - 1)
# 8 is a divisor of 40 (20 * 2)
# 13 is a divisor of 39Observações
O n fornecido pode ser qualquer inteiro, positivo, negativo ou 0.