題意 :乙個整數,寫成因子相成的形式,問多少種寫法。比如當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的所有因子。 比如12 的所有因子有 2 ,3, 4, 6 ,12
對於 2 有 2*1 一種; 對於 3 ,有 3*1 一種;對於 4 ,有 4*1 2*(4/2) 兩種; 對於 6 ,有 6*1 ,2*(6/2) ,3*(6/3) ,3種,對於 12,有 12*1 ,2*6, 3*4, 4*3 , 2*2*3 , 6*2 , 2*3*2 , 3*2*2, 8種,ok就是它了,可以發現規律,對於第i個因子, 設 f[i]代表第i個因子代表的種類數, 初始化 f[0]=1 ,f[i]=1+f[j] (j>=0&&j
#include #include #include #include #include #include #include #include #include #include #include #include #include #define maxn 1005
#define _ll __int64
#define ll long long
#define inf 0x3f3f3f3f
#define mod 1<<40+10
#define pp pair#define ull unsigned long long
using namespace std;
ll n;int tot,fac[100010],f[100010];
void div(ll n)
} fac[tot++]=n;
}void solve()
printf("%d\n",f[tot-1]);
}int main()
1722 整數因子分解問題
time limit 1000 ms memory limit 65536 kib 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...
整數因子分解
時間限制 1000ms 記憶體限制 1000k 提交次數 0 通過次數 0 題型 程式設計題 語言 g gcc vc 大於1的正整數 n 都可以分解為 n x1 x2 xm,每個xi為大於1的因子,即1 第一行乙個正整數n 1 n 1000000 不同的分解式數目 12 8 此題因子講順序的.第乙個...
整數因子分解
大於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共有多少種不同的分解式。此題因子講順序的.第乙個...