Tanımlar
Izin vermek m
ve n
pozitif tamsayı olmak. Biz demek m
bir olan bölen büküm ait n
tamsayılar mevcutsa 1 < a ≤ b
öyle ki n = a*b
ve m = (a - 1)*(b + 1) + 1
. Eğer m
elde edilebilir n
o sıfır ya da daha fazla bölen katlanmış uygulayarak, ardından m
a, 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 = 2
ve b = 8
beri 2*8 = 16
. Sonra
(a - 1)*(b + 1) + 1 = 1*9 + 1 = 10
ki 10
bunun bölen bir bükülme olduğunu gösterir 16
. İle a = 2
ve b = 5
biz o zaman görürüz 7
bir böleni büküm olduğunu 10
. Böylece 7
bir torunudur 16
.
Görev
Pozitif bir tamsayı verildiğinde , artan sırada listelenen n
torunlarını n
kopyalar 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).