/*
** 2015-09-19 17:10:16
** POJ 2739 10000以内的数可以被几组连续的素数相加得到
/*
#include <iostream>
#include <vector>
using namespace std;
vector<int> vec;
int fun(int);
int main()
{
int n ;
int sum = 0;
int count = 0;
for ( int i = 2 ; i <= 10000 ; i++)
{
fun(i);
}
while (cin >> n)
{
if ( n >= 2 && n <= 10000)
{
vector<int>::iterator ite1;
vector<int>::iterator ite2;
for ( ite1 = vec.begin() ; ite1 != vec.end() ; ite1++)
{
sum = 0;
for (ite2 = ite1 ; ite2 != vec.end() ; ite2++)
{
sum += *ite2;
if (sum == n)
{
count++;
break;
}
}
}
cout << count <<endl;
count = 0;
}
else
{
if ( n == 0)
{
break;
}
}
}
return 0;
}
int fun(int a)
{
int k,i;
k=a/2;
for(i=2;i<=k+1;i++)
if(a%i==0) break;
if(i>k)
vec.push_back(a);
return 0;
}
** 2015-09-19 17:10:16
** POJ 2739 10000以内的数可以被几组连续的素数相加得到
** by : 飞翔的黑珍珠
** 本人承诺以下代码均由本人亲自编写。
*//*
#include <iostream>
#include <vector>
using namespace std;
vector<int> vec;
int fun(int);
int main()
{
int n ;
int sum = 0;
int count = 0;
for ( int i = 2 ; i <= 10000 ; i++)
{
fun(i);
}
while (cin >> n)
{
if ( n >= 2 && n <= 10000)
{
vector<int>::iterator ite1;
vector<int>::iterator ite2;
for ( ite1 = vec.begin() ; ite1 != vec.end() ; ite1++)
{
sum = 0;
for (ite2 = ite1 ; ite2 != vec.end() ; ite2++)
{
sum += *ite2;
if (sum == n)
{
count++;
break;
}
}
}
cout << count <<endl;
count = 0;
}
else
{
if ( n == 0)
{
break;
}
}
}
return 0;
}
int fun(int a)
{
int k,i;
k=a/2;
for(i=2;i<=k+1;i++)
if(a%i==0) break;
if(i>k)
vec.push_back(a);
return 0;
}