Meraklı bir çocuk bir sayı veya aşağıdaki formda bir ifade çarpanlara bir programı kullanır: p1^e1 * p2^e2 * ... * pn^en
. Eşdeğer 1
üsler, örn.360 = 2^3 * 3^2 * 5
Çocuk bu çıktıyı programa yeni girdi olarak yazar, ancak ^
işareti anlamıyor, bu yüzden bazen ilgili ana ve üsleri birleştirenlerden bir veya daha fazlasını atlıyor. Örneğin(360 =) 2^3 * 3^2 * 5 => 2^3 * 32 * 5 (= 1280)
Bu hatalar nedeniyle tekrar girebileceği farklı bir çarpanlara ayırma yapabilir (0 veya daha fazlasını atlayarak ^
). Çarpanlara ayırma artık değişmeyene kadar işlemi tekrarlar (belki artık başka bir şey kalmaz ^
veya çıktıyı doğru kopyalar).
Bir integer n
( n>1
) verilen tüm olası sayıları artan sırayla çıkaran bir program veya işlev yazmalısınız n
. Örneğin, girdi 16
için olası son faktörleştirmeler(16 =) 2^4, (24 =) 2^3 * 3, (23*3 =) 3 * 23
Giriş ayrıntıları:
- girdi, daha büyük tek bir tamsayıdır
1
- çıkış sayısı daha büyük olan hiçbir girdi verilmeyecektir
2^31-1
1000
çıkış numaralarından daha fazlasını üreten hiçbir giriş verilmeyecektir
Çıktı ayrıntıları:
- kendi dilinize uygun bir tamsayı listesi
Örnekler:
Giriş => Çıkış
11 => 11
16 => 16 24 69
360 => 140 360 770 1035 1219 1280 2875 3680
605 => 560 605 840 2415
2048 => 211 2048
58564 => 230 456 1311 2508 9975 12768 13794 20748 58564 114114 322102
Bu kod golf çok kısa bir program kazanır.