【問題描述】
任何大於1的自然數n,都可以寫成若干個大於等於2且小於等於n的質數之和表示式(包
括只有乙個數構成的和表示式的情況),並且可能有不止一種質數和的形式。例如9的質數和
表示式就有四種本質不同的形式:9 = 2+5+2 = 2+3+2+2 = 3+3+3 = 2+7。
這裡所謂兩個本質相同的表示式是指可以通過交換其中乙個表示式中參加和運算的各
個數的位置而直接得到另乙個表示式。
試程式設計求解自然數n可以寫成多少種本質不同的質數和表示式。
【輸入檔案】
檔案中的每一行存放乙個自然數n,2≤n≤200。
【輸出檔案】
依次輸出每乙個自然數n的本質不同的質數和表示式的數目。
【樣例輸入】
2 【樣例輸出】
1 【樣例輸入】
200
【樣例輸出】
9845164
#include
#include
#include
using
namespace
std;
int n,f[210],p[210];
bool judge(int x)//判斷x是否為質數
int main()
質數和分解
本題可以參考集合求數 分解成質數之和,所以首先得求素數。由於本題資料不大,打個暴力也行。由於可以分解為多個相同質數的和,所以本題是完全揹包。f i j 表示前i個素數和為j的方案數,對於第i個素數,有取和不取兩種方案,本題有是求方案數,轉移方程就成了 f i j f i 1 j f i 1 j w ...
SSL P1197 質數和分解
求乙個數的質數和表示式,有多少種不同的方式。乍一看去,好像比較麻煩,貌似需要每個表示式都要列舉再統計。但只要冷靜分析,其實不難發現其實 就只是乙個完全揹包 每個質數都沒有限制 所以其實整個程式只要由素篩 素數篩選法 完全揹包的 套 路即可。include includeusing namespace...
197 階乘分解(質數)
階乘分解 給定整數 n 試把階乘 n 分解質因數,按照算術基本定理的形式輸出分解結果中的 pi 和 ci 即可。輸入格式 乙個整數n。輸出格式 n 分解質因數後的結果,共若干行,每行一對pi,ci,表示含有pcii項。按照pi從小到大的順序輸出。資料範圍 1 n 106 輸入樣例 5輸出樣例 2 3...