Pozitif tamsayılar koleksiyonu d_1 d_2 ... d_k
bir olan factorisation Pozitif tamsayı n
ise
d_1 * d_2 * ... * d_k = n
Her pozitif tamsayının benzersiz bir ana çarpanlara ayrılması vardır , ancak genel olarak terimlerin bazılarının birleşik olduğu çarpanlara da sahiptir. Örneğin
12 = 6 * 2 = 4 * 3 = 3 * 2 * 2
Girdi olarak tek bir pozitif tamsayı alan ve farklı faktörlemelerinin tam bir listesini döndüren ya da basan bir program, işlev, fiil veya benzeri bir şey yazın. Faktoring, herhangi bir sırayla üretilebilir ve terimleri herhangi bir sırayla olabilir, ancak ikisi birbirinin permütasyonu olmamalıdır. Faktoring, 1
iki istisna dışında olabilir: giriş n
için, faktoringi n*1
yerine n
; ve giriş için boş liste yerine 1
çarpanlara ayırma verebilirsiniz 1
.
Girişin imzalı bir 32 bit tam sayı aralığında olacağını varsayabilirsiniz. Çıktı bir dizge ise, faktörizasyondaki sayıların sınırlandırılması ile faktörizasyonun sınırlandırılması arasında açık bir ayrım olmalıdır, ancak bir faktöre katılması gereken faktörler için (örneğin) gerekli değildir *
.
Kodunuz makul bir masaüstünde 10 dakika içerisinde geçerli bir girişi tutabilecek durumda olmalıdır.
Örnekler
1 [[]]
or [[1]]
or [[1 1]]
7 [[7]]
or [[7 1]]
or [[1 7]]
12 [[12] [6 2] [4 3] [2 3 2]]
or variants
16 [[2 2 2 2] [2 2 4] [2 8] [4 4] [16]]
or variants
901800900 a list of 198091 factorisations
1338557220 a list of 246218 factorisations
901800900
ve çarpanlara ayırma listesini gönderebilir misiniz1338557220
? Kodum bana bu numaralar için sırasıyla 2048 ve 1024 faktoringi veriyor, ve neden olduğundan emin değilim.