POJ 2739 素数筛选法打表
2016-09-02 22:18
411 查看
传送门:http://poj.org/problem?id=2739、
直接用筛选法打表,然后双重循环判断多个情况,符合就cnt++。
#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
using namespace std;
const int maxn = 10000;
int s[maxn];
int prime[maxn];
int l;
//素数打表
void set()
{
int i,j;
memset(prime,0,sizeof(prime));
for(i = 2; i<10000; i++)
{
if(prime[i])
continue;//筛选
for(j = i+i; j<10000; j+=i)//经过筛选实际上超过不了maxn=10000
prime[j] = 1;//标记
s[l++] = i;//存下素数
}
}
int main()
{
set();
int ans;
while (~scanf("%d",&ans)) {
if (ans == 0) {
return 0;
}
int cnt = 0;
for (int i = 0; s[i] <= ans; i++) {
int sum = 0;
for (int j = i; sum <= ans; j++) {
sum += s[j];
if (sum == ans) {
cnt++;
break;
}
}
}
cout<<cnt<<endl;
}
}
直接用筛选法打表,然后双重循环判断多个情况,符合就cnt++。
#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
using namespace std;
const int maxn = 10000;
int s[maxn];
int prime[maxn];
int l;
//素数打表
void set()
{
int i,j;
memset(prime,0,sizeof(prime));
for(i = 2; i<10000; i++)
{
if(prime[i])
continue;//筛选
for(j = i+i; j<10000; j+=i)//经过筛选实际上超过不了maxn=10000
prime[j] = 1;//标记
s[l++] = i;//存下素数
}
}
int main()
{
set();
int ans;
while (~scanf("%d",&ans)) {
if (ans == 0) {
return 0;
}
int cnt = 0;
for (int i = 0; s[i] <= ans; i++) {
int sum = 0;
for (int j = i; sum <= ans; j++) {
sum += s[j];
if (sum == ans) {
cnt++;
break;
}
}
}
cout<<cnt<<endl;
}
}
相关文章推荐
- POJ 2739 E - Sum of Consecutive Prime Numbers 素数打表+尺取法
- POJ 2739 Sum of Consecutive Prime Numbers(素数打表水题)
- POJ 2739 素数打表
- POJ 3006 Dirichlet's Theorem on Arithmetic Progressions (筛选法素数打表)
- POJ 2739 素数筛选
- POJ 2739 Sum of Consecutive Prime Numbers(素数打表 + 暴力)
- POJ 2739 Sum of Consecutive Prime Numbers(素数打表+素数搜索)
- POJ 2739 Sum of Consecutive Prime Numbers 素数打表+尺取法
- Sum of Consecutive Prime Numbers POJ - 2739 素数打表—埃氏筛法
- poj2739 Sum of Consecutive Prime Numbers 尺取法 素数打表
- POJ2739 Sum of Consecutive Prime Numbers【素数筛选+尺取法】
- POJ 2739 素数打表-----水题
- POJ 2739 Sum of Consecutive Prime Numbers【素数打表】
- poj_2739 素数打表
- HDU 2136 Largest prime factor(素数筛选+打表)
- ACM刷题之HDU————相遇周期(真·打表(素数筛选))
- poj_2262 素数打表
- POJ 1595 素数打表水题
- POJ 2739 Sum of Consecutive Prime Numbers(素数表的应用)
- POJ 2689 Prime Distance【大区间素数筛选】【埃氏筛法】【经典题】