比赛 20100913 评测结果 AAAAAAAAEA
题目名称 连续素数和 最终得分 90
用户昵称 IOI金牌得主 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2010-09-13 22:02:29
显示代码纯文本
#include<iostream>
#include<fstream>
using namespace std;

long long a[10001],num[10001],zhi[10001],ji[10001];

void dd()
{
	int i,j,k=-1;
	bool p=true;
	for(i=2;i<=10000;i++)
	{
		for(j=2;j<i;j++)
		{
			if(i%j==0) 
			{
				p=false;
				break;
			}
		}
		if(p)
		{
		    k++;
		    zhi[k]=i;
		}
		p=true;
	}
	zhi[k+1]=20000000;
}

int main()
{
	ifstream fin("conprime.in");
	ofstream fout("conprime.out");
	int n,i=-1,head,tail,sum;
	dd();
	for(i=0;i<=9999;i++) ji[i]=0;
	i=-1;
	do
	{
		i++;
		fin>>num[i];
	}
	while(num[i]!=0);
	n=i-1;
	
	for(i=0;i<=n;i++)
	{
   	    head=-1;
   		tail=0;
   		sum=0;
   		do
   		{
   			head++;
   			sum=sum+zhi[head];
	   		if(sum>num[i])
		   		do
			   	{
				   	sum=sum-zhi[tail];
				   	tail++;
   				}
	   			while(sum>num[i]);
			if(sum==num[i])
				ji[i]++;
	   	}
		while(num[i]>=zhi[head+1]);
	}
	for(i=0;i<=n;i++)
		fout<<ji[i]<<endl;
	return 0;
}