您的位置:首页 > 其它

西工大 POJ Sum of Consecutive Prime Numbers

2014-04-27 00:32 316 查看
什么都不说直接上代码



#include <iostream>
#include <stdio.h>
using namespace std;

int prime[1229]; //这里的长度是后来计算出来的,为了省内存。
int count = 0;

//判断k是否为素数,模它前面的素数,如果得到0说明它不是素数,反之这是素数。
bool isPrime(int k)
{
for (int i = 0; i < count; i++) {
if (k % prime[i] == 0) {
return false;
}
}
return true;
}

int main()
{
//开始构建素数表
for (int i = 2; i <= 10000; i++) {
if (isPrime(i)) {
prime[count] = i;
count++;
}
}

int input;
while (cin>>input) {
if (input == 0) {
return 0;
}
int total = 0;
for (int i = 0; prime[i] <= input; i++) {
int sum = 0;
for (int j = i; sum <= input; j++) {
sum += prime[j];
if (sum == input) {
total++;
break;
}
}
}
cout<<total<<endl;
}
}

什么?你不懂什么是素数表?要百度干嘛的?

想法都在代码里了我就不讲了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  西工大 POJ 第十季