你們中有些人可能聽過這個笑話:有個男孩不再上學,因為他認為他的老師瘋了。當他的父母問他為什麼這麼覺得時,男孩回答說:“兩天前,我的數學老師說,12 = 4 × 3,而昨天她又說12 = 6 × 2。我怎麼能信任這樣一個自相矛盾的老師呢?”他的父母向他解釋了情況,於是男孩相信了,繼續上學。幾年後,男孩想知道一個數有多少種分解方式。他拿起筆和紙,發現對於大數來說,這個任務變得相當繁瑣。因此,他向你尋求幫助。他希望你能寫一個程序來解決他的問題。
輸入檔案最多包含 20 個案例。每行輸入包含一個正整數,N ≤ 2000000。最後一個案例後面會有一個值為 0 的 N,該值不應被處理。
對於每個案例,會有一行或多行的輸出。每組輸出的第一行應包含數字 F,表示 N 唯一分解的方式數量。如果 F > 0,則接下來的 F 行應包含 N 的分解方式。分解中的數字應按非遞減順序排序,並且單個分解應按字典順序排序。輸出數字時,數字之間應該有空格。請參見 N = 20 的範例輸出以了解詳細說明。分解的排列順序被認為是相同的。也就是說,12 = 4 × 3 和 12 = 3 × 4 被視為相同的分解。
注意:為了限制答案的有限值,分解中不應包含任何 1,並且分解中應至少有兩個數字。因此,對於此問題,20 = 1 × 20 不是 20 的分解。
1 20 0
0 3 2 2 5 2 10 4 5
編號 | 身分 | 題目 | 主題 | 人氣 | 發表日期 |
41932 | alen24816@gm ... (AlenLU(軟工一014呂宥...) | n750 | 105 | 2024-09-11 15:10 |