POJ 2739 Sum of Consecutive Prime Numbers(Two pointers)
2016-04-26 19:27
405 查看
【题意】给了一个数字num,问你存在多少种连续的素数之和等于这个数!
【分析】素筛+two pointers!题很简单,所以具体看代码了!
【AC代码】
【分析】素筛+two pointers!题很简单,所以具体看代码了!
【AC代码】
#include <stdio.h> #include <assert.h> #include <string.h> #include <iostream> using namespace std; const int maxn = 10010; bool is[maxn]; int a[maxn]; int cnt,n; void Init(){ memset(a,0,sizeof(a)); memset(is,false,sizeof(is)); is[1]=true; a[0] = 0; cnt = 1; for(int i=2; i*i<maxn; i++){ if(!is[i]){ for(int j=i*i; j<maxn; j+=i){ is[j] = true; } } } for(int i=2; i<maxn; i++){ if(!is[i]) a[cnt++] = i; } } int main(){ Init(); while(~scanf("%d",&n)&&n){ int ans =0,sum = 0; int l=1,r=0; while(1){ while(sum<n&&a[r+1]<=n){ sum+=a[++r]; } if(sum<n) break; else if(sum>n){ sum-=a[l++]; }else if(sum==n){ ans++; sum-=a[l++]; } } printf("%d\n",ans); } return 0; }
相关文章推荐
- Java虚拟机如何加载Class文件
- HDU 1495 - 非常可乐
- python遍历数组的两种方法
- ZOJ 3936-Apples and Ideas【模拟】(2016浙江省大学生程序设计竞赛)
- 【GDOI2016模拟4.23】无界单词
- C++实验4
- Python 内置函数 range的使用
- CSS3动画工具
- 递归算法 笔记
- MATLAB——scatter的简单应用
- java中四种操作(dom、sax、jdom、dom4j)xml方式详解与比较
- 关于工作流后台流程并行程序的有用信息
- error: zlib.h:no such file or directory
- 【Nginx】下载,请求限流限速,根据URL参数限速
- Android技术知识分享第一弹——SDK中常用命令
- 【Nginx】下载,请求限速,根据URL参数限速
- cookie、session、sessionid 与jsessionid
- hdu2795Billboard
- Git学习3:理解工作区和暂存区
- 微信网页获取openId