/*
* POJ_2379.cpp
*
* Created on: 2013年10月18日
* Author: Administrator
*/
#include <iostream>
#include <cstdio>
using namespace std;
const int maxn = 10010;
int su[maxn];
bool u[maxn];
int num;
int n;
void prepare() {
int i, j;
num = 0;
memset(u, true, sizeof(u));
for (i = 2; i <= 10001; ++i) {
if (u[i]) {
su[++num] = i;
}
for (j = 1; j <= num; ++j) {
if (i * su[j] > 10001) {
break;
}
u[i * su[j]] = false;
if (i % su[j] == 0) {
break;
}
}
}
}
int main() {
prepare();
while(scanf("%d",&n)!=EOF,n){
int i,j;
int ans = 0;
for(i = 1 ; su[i] <= n ; ++i){
int cnt = 0;
for(j = i ; j < num && cnt < n ; ++j){
cnt += su[j];
}
if(cnt == n){
ans++;
}
}
// printf("%d\n",ans);
cout<<ans<<endl;
}
return 0;
}
(DS1.4.3)POJ 2739(一个数能表示成多少个连续素数之和)
最新推荐文章于 2024-05-01 00:58:01 发布