Tanımlar
Izin vermek mve npozitif tamsayı olmak. Biz demek mbir olan bölen büküm ait ntamsayılar mevcutsa 1 < a ≤ böyle ki n = a*bve m = (a - 1)*(b + 1) + 1. Eğer melde edilebilir no sıfır ya da daha fazla bölen katlanmış uygulayarak, ardından ma, soyundan arasında n. Her sayının kendi torunu olduğunu unutmayın.
Örneğin, düşünün n = 16. Biz seçebilir a = 2ve b = 8beri 2*8 = 16. Sonra
(a - 1)*(b + 1) + 1 = 1*9 + 1 = 10
ki 10bunun bölen bir bükülme olduğunu gösterir 16. İle a = 2ve b = 5biz o zaman görürüz 7bir böleni büküm olduğunu 10. Böylece 7bir torunudur 16.
Görev
Pozitif bir tamsayı verildiğinde , artan sırada listelenen ntorunlarını nkopyalar olmadan hesaplayın .
kurallar
Bir sayının bölenlerini hesaplayan yerleşik işlemleri kullanmanıza izin verilmez.
Hem tam programlar hem de işlevler kabul edilir ve bir koleksiyon veri türünün (bir tür küme gibi) döndürülmesine, sıralandığı ve çoğaltılmadığı sürece izin verilir. En düşük bayt sayısı kazanır ve standart boşluklara izin verilmez.
Test Durumları
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]
<Doğal sayılar için ilişkiyi tanımlarsanız, her n için her sayıyı kendisinden değil, ondan daha küçük alırsınız. Bunun benzer bir şey olması gerektiğini düşünüyorum. Bu şekilde sadece 4 kendi torunu olacağını düşünüyorum (bu konuda emin değilim ama).