整數因子分解

2021-09-28 20:07:46 字數 762 閱讀 8724

時間限制: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共有多少種不同的...