首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

(DS1.4.3)POJ 2739(一个数会表示成多少个连续素数之和)

2013-10-19 
(DS1.4.3)POJ 2739(一个数能表示成多少个连续素数之和)/* * POJ_2379.cpp * *Created on: 2013年10月18日

(DS1.4.3)POJ 2739(一个数能表示成多少个连续素数之和)

/* * 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;}

热点排行