比赛 NOIP2008集训模拟5 评测结果 AAAAAAAAAA
题目名称 连续素数和 最终得分 100
用户昵称 BYVoid 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2008-11-14 09:54:47
显示代码纯文本
#include <iostream>

using namespace std;

int P[1300],N,S[1300];
int F[10001];

void makeprime()
{
	int i,j;
	bool T;
	for (i=2;i<=10000;i++)
	{
		T=false;
		for (j=1;j<=N && P[j]*P[j]<=i;j++)
		{
			if (i%P[j]==0)
			{
				T=true;
				break;
			}
		}
		if (!T)
		{
			P[++N]=i;
			S[N]=S[N-1]+P[N];
		}
	}
}

void solve()
{
	int i,j,Item;
	for (i=1;i<=N;i++)
	{
		for (j=i;j<=N;j++)
		{
			Item=S[j]-S[i-1];
			if (Item<=10000)
				F[Item]++;
		}
	}
	do
	{
		scanf("%d",&Item);
		if (Item) printf("%d\n",F[Item]);
	}
	while (Item);
}

int main()
{
	freopen("conprime.in","r",stdin);
	freopen("conprime.out","w",stdout);
	makeprime();
	solve();
	return 0;
}