Definisi
Biarkan mdan nmenjadi bilangan bulat positif. Kami mengatakan bahwa madalah twist yang pembagi dari njika ada bilangan bulat 1 < a ≤ bsehingga n = a*bdan m = (a - 1)*(b + 1) + 1. Jika mdapat diperoleh dari ndengan menerapkan nol atau lebih tikungan pembagi untuk itu, maka madalah keturunan dari n. Perhatikan bahwa setiap angka adalah turunannya sendiri.
Sebagai contoh, pertimbangkan n = 16. Kita dapat memilih a = 2dan b = 8sejak itu 2*8 = 16. Kemudian
(a - 1)*(b + 1) + 1 = 1*9 + 1 = 10
yang menunjukkan bahwa itu 10adalah twist pembagi 16. Dengan a = 2dan b = 5, kita kemudian melihat bahwa itu 7adalah twist pembagi 10. Jadi itu 7adalah keturunan 16.
Tugas
Diberikan bilangan bulat positif n, hitung keturunan n, terdaftar dalam urutan yang meningkat, tanpa duplikat.
Aturan
Anda tidak diizinkan untuk menggunakan operasi bawaan yang menghitung pembagi nomor.
Baik program dan fungsi penuh diterima, dan mengembalikan tipe data koleksi (seperti jenis tertentu) diizinkan, asalkan itu diurutkan dan bebas duplikat. Hitungan byte terendah menang, dan celah standar tidak diizinkan.
Uji Kasus
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]
<untuk bilangan asli, untuk setiap n Anda mendapatkan setiap angka lebih kecil dari itu tetapi tidak sendiri. Saya pikir ini harus menjadi sesuatu yang serupa. Dengan cara ini saya pikir hanya 4 akan menjadi keturunannya sendiri (meskipun tidak yakin tentang itu).