#pragma warning(disable:4996)
#include<cstdio>
#include<cstring>
#include<string>
#include<cmath>
#include<vector>
#include<algorithm>
#include<iostream>
#include<time.h>
using namespace std;
int Count;
int prime[10001];
int temp[10001];
bool IsPrime[10001];
void Init()
{
memset(IsPrime, true, sizeof(IsPrime));
Count = 0;
int i, j;
for (i = 2; i<10005; i++)
if (IsPrime[i])
{
prime[++Count] = i;
for (j = i*i; j<10001; j += i)
IsPrime[j] = false;
}
}
int main()
{
int n;
memset(temp, 0, sizeof(temp));
Init();
prime[0] = 0;
for (int i = 2; i <= Count; i++)
{
prime[i] = prime[i] + prime[i - 1];
}
for (int i = 0; i <= Count; i++)
{
for (int j = i + 1; j <= Count; j++)
{
if (prime[j] - prime[i] < 10001)
{
temp[prime[j] - prime[i]]++;
}
else
{
break;
}
}
}
while (cin >> n, n)
cout << temp[n] << endl;
return 0;
}
POJ(2739)
最新推荐文章于 2022-02-07 18:49:21 发布