P1832 A+B Problem(再升级)
题目背景
·题目名称是吸引你点进来的
·实际上该题还是很水的
题目描述
·1+1=? 显然是2
·a+b=? 1001回看不谢
·哥德巴赫猜想 似乎已呈泛滥趋势
·以上纯属个人吐槽
·给定一个正整数n,求将其分解成若干个素数之和的方案总数。
输入格式
一行:一个正整数n
输出格式
一行:一个整数表示方案总数
#include<bits/stdc++.h> using namespace std; const int maxn=1010; typedef long long ll; int tot=0; int c[maxn]; int is (int x) { if (x<=1) return 0; for (int i=2;i*i<=x;i++) if (x%i==0) return 0; return 1; } ll dp[maxn]; int n; int main () { scanf("%d",&n); for (int i=1;i<=n;i++) { if (is(i)) { c[++tot]=i; } } dp[0]=1; for (int i=1;i<=tot;i++) for (int j=c[i];j<=n;j++) dp[j]+=dp[j-c[i]]; printf("%lld\n",dp[n]); }