definizioni
Lasciate med nessere numeri interi positivi. Diciamo che mè una svolta del divisoren se esistono numeri interi 1 < a ≤ btali che n = a*be m = (a - 1)*(b + 1) + 1. Se si mpuò ottenere napplicando zero o più colpi di scena divisori, allora mè un discendente di n. Si noti che ogni numero è il proprio discendente.
Ad esempio, considera n = 16. Possiamo scegliere a = 2e b = 8, da allora 2*8 = 16. Poi
(a - 1)*(b + 1) + 1 = 1*9 + 1 = 10
che mostra che 10è una svolta del divisore di 16. Con a = 2e b = 5, vediamo quindi che 7è una svolta del divisore di 10. Quindi 7è un discendente di 16.
L'obiettivo
Dato un numero intero positivo n, calcola i discendenti di n, elencati in ordine crescente, senza duplicati.
Regole
Non è consentito utilizzare le operazioni integrate che calcolano i divisori di un numero.
Sono accettati programmi e funzioni completi e è consentita la restituzione di un tipo di dati di raccolta (come un set di qualche tipo), purché sia ordinato e duplicato. Vince il conteggio di byte più basso e non sono consentite scappatoie standard.
Casi test
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]
<per i numeri naturali, per ogni n si ottiene ogni numero più piccolo di esso ma non se stesso. Penso che questo dovrebbe essere qualcosa di simile. In questo modo penso che solo 4 sarebbe il suo discendente (non ne sono sicuro, però).