Definições
Let m
E n
Ser inteiros positivos. Dizemos que m
é uma torção divisora de n
se existem números inteiros, 1 < a ≤ b
tais que n = a*b
e m = (a - 1)*(b + 1) + 1
. Se m
pode ser obtido n
aplicando zero ou mais torções divisórias a ele, então m
é um descendente de n
. Observe que todo número é seu próprio descendente.
Por exemplo, considere n = 16
. Nós podemos escolher a = 2
e b = 8
, desde então 2*8 = 16
. Então
(a - 1)*(b + 1) + 1 = 1*9 + 1 = 10
o que mostra que 10
é uma torção divisória de 16
. Com a = 2
e b = 5
, vemos então que 7
é uma torção divisória de 10
. Assim 7
é um descendente de 16
.
A tarefa
Dado um número inteiro positivo n
, calcule os descendentes de n
, listados em ordem crescente, sem duplicatas.
Regras
Você não tem permissão para usar operações internas que computam os divisores de um número.
Programas e funções completos são aceitos e o retorno de um tipo de dados de coleção (como um conjunto de algum tipo) é permitido, desde que seja classificado e sem duplicação. A contagem de bytes mais baixa vence e as brechas padrão não são permitidas.
Casos de teste
1 -> [1]
2 -> [2] (any prime number returns just itself)
4 -> [4]
16 -> [7, 10, 16]
28 -> [7, 10, 16, 25, 28]
51 -> [37, 51]
60 -> [7, 10, 11, 13, 15, 16, 17, 18, 23, 25, 28, 29, 30, 32, 43, 46, 49, 53, 55, 56, 60]
<
para os números naturais, para cada n, cada número será menor que ele, mas não ele próprio. Eu acho que isso deve ser algo semelhante. Dessa forma, acho que apenas 4 seriam seus próprios descendentes (embora não tenham certeza disso).