SOJ3605 The sum of prime number

来源:互联网 发布:青少年计算机编程创业 编辑:程序博客网 时间:2024/05/16 06:06

好吧,其实是水题,但是我觉得其中还有一定的思维难度的。


#include <cstdio>#include <cstring>#include <cstdlib>#include <ctime>#include <climits>#include <cmath>#include <iostream>#include <string>#include <vector>#include <set>#include <map>#include <list>#include <queue>#include <stack>#include <deque>#include <algorithm>using namespace std;typedef long long ll;const int maxn = 1010;int T,n;bool vis[maxn];int p[maxn],pp;ll dp[maxn];int main(){    memset(vis,0,sizeof(vis));    for (int i=2;i<=1009;i++)        for (int j=i*i;j<=1009;j+=i)            vis[j]=1;    pp=0;    for (int i=2;i<=1009;i++)        if (!vis[i]) p[pp++]=i;    memset(dp,0,sizeof(dp));    dp[0]=1;    for (int i=0;p[i]<=1000;i++)        for (int j=p[i];j<=1000;j++)            dp[j]+=dp[j-p[i]];    for (int i=0;p[i]<=1000;i++)        dp[p[i]]--;    dp[0]=0;    scanf("%d",&T);    while (T--)    {        scanf("%d",&n);        printf("%lld\n",dp[n]);    }return 0;}


原创粉丝点击