记录编号 8441 评测结果 AAAAAAAAAA
题目名称 [Japan2005] 连续素数和 最终得分 100
用户昵称 Gravatarzqzas 是否通过 通过
代码语言 C++ 运行时间 0.615 s
提交时间 2008-11-14 12:03:48 内存使用 0.34 MiB
显示代码纯文本
#include <iostream>
#include <cmath>

#define MAXN 10010

using namespace std;

int n,hash[MAXN],prime[MAXN];

void makeprime()
{
	int i,j;
	double sqr;
	bool flag;
	for (i=2;i<=11000;i++)
	{
		flag=true;
		sqr=sqrt(i);
		//check num i
		for (j=2;j<=sqr;j++)
		{
			if (i % j==0)//可以整除 余数为0
			{
				flag=false;
				break;
			}
		}
		if (flag)
			prime[++prime[0]]=i;
	}
}

void run()
{
	int i,j,now;
	makeprime();
	for (i=1;i<=prime[0];i++)
	{
		now=0;
		for (j=i;j<=prime[0];j++)
		{
			now+=prime[j];
			if (now<=10000)
				hash[now]++;
			else
				break;
		}
	}
}

void ini()
{
	run();
	int a;
	cin>>a;
	if (a!=0)
		cout<<hash[a];
	while (1)
	{
		scanf("%d",&a);
		if (a==0)
			break;
		cout<<endl<<hash[a];
	}
}

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