時間限制:1000ms 記憶體限制:1000k
提交次數:0 通過次數:0
題型: 程式設計題 語言: g++;gcc;vc
大於1的正整數 n 都可以分解為 n = x1 * x2 * ... * xm, 每個xi為大於1的因子,即1第一行乙個正整數n (1<=n<=1000000)
不同的分解式數目
12
8
此題因子講順序的.第乙個因子可能是2~n之間的數.比如對12而言,第乙個因子可能是2,3,4,6,12.
將第乙個因子為2的分解個數,加上第乙個因子為3的分解個數,...,直至加到第乙個因子為12的分解個數.
而第乙個因子為2的分解個數又是多少呢?是對6去做因子分解的個數(因為12/2=6),遞迴求解!
可用「遞迴」和「備忘錄方法」兩種方法分別求解,並測試一下效率。
遞迴實現整數因子分解的計數。假設對正整數n的因子分解計數為solve(n)。
1)當n=1時,計數加1。
2)當n>1時,對n的每個因子i,計算solve(n/i)。
或者這樣實現也可以:
int solve2(int n)
#include using namespace std;int solve2(int n)
int main()
整數因子分解
大於1的正整數 n 都可以分解為 n x1 x2 xm,每個xi為大於1的因子,即1例如 當n 12時,共有8種不同的分解式 12 12 12 62 12 43 12 34 12 322 12 26 12 232 12 223 對於給定正整數n,計算n共有多少種不同的分解式。此題因子講順序的.第乙個...
整數因子分解
大於1的正整數n可以分解為 n x1 x2 xm.例如,當n 12時,共有8種不同的分解式 12 12 12 6 2 12 4 3 12 3 4 12 3 2 2 12 2 6 12 2 3 2 12 2 2 3 對於給定的正整數n,程式設計計算n共有多少種不同的分解式。輸入資料有多行,給出正整數n...
整數因子分解問題
problem description 大於1的正整數n可以分解為 n x1 x2 xm。例如,當n 12 時,共有8 種不同的分解式 12 12 12 6 2 12 4 3 12 3 4 12 3 2 2 12 2 6 12 2 3 2 12 2 2 3。對於給定的正整數n,計算n共有多少種不同的...