Sum of Consecutive Prime Numbers POJ - 2739 线性欧拉筛(线性欧拉筛证明)
题意:给一个数 可以写出多少种 连续素数的合
思路:直接线性筛 筛素数 暴力找就行 (素数到n/2就可以停下了,优化一个常数)
其中:线性筛的证明参考:https://blog.csdn.net/nk_test/article/details/46242401
https://blog.csdn.net/qq_40873884/article/details/79124552
https://blog.csdn.net/baoli1008/article/details/50788512
线性筛的思想 就是 每个数都有一个最小的质因素 外层i是质因数个数 内层j是primes[i]的标号 用每个质因数筛 每个数只要被筛一遍
同时, if(i%primes[j]==0 )break; 这里指的是如果i%primes[j]==0了 那么i就有因数 primes[j] 所以i*prime[j+1]肯定已经被筛掉了
因为是从小到大开始筛的,i中还有primes[j] 说明 i*primes[j+1]最小的质因数等于primes[j] 所以肯定会被筛掉 只是可能循环轮次
不同,可能是下一个i或者其他i
#include<cstdio>
#include<cstring>
using namespace std;
bool Is_Primes[];
int Primes[];
int cnt;
void Prime(int n){
cnt=;
memset(Is_Primes,,sizeof(Is_Primes));
for(int i=;i<=n;i++){
if(!Is_Primes[i])
Primes[cnt++]=i;
for(int j=;j<cnt&&i*Primes[j]<n;j++){
Is_Primes[Primes[j]*i]=;
if(i%Primes[j]==)break;
}
}
}
int main(){
int n;
Prime();
while(scanf("%d",&n)==&&n){
int ans=;
for(int i=;i<cnt&&Primes[i]<=n;i++){
int temp=i;
int sum=;
while(sum<n&&temp<cnt){
sum+=Primes[temp++];
}
if(sum==n)ans++;
}
int flag=; printf("%d\n",ans);
}
return ;
}
Sum of Consecutive Prime Numbers POJ - 2739 线性欧拉筛(线性欧拉筛证明)的更多相关文章
- Greedy:Sum of Consecutive Prime Numbers(POJ 2739)
素数之和 题目大意:一些整数可以表示成一个连续素数之和,给定一个整数要你找出可以表示这一个整数的连续整数序列的个数 方法:打表,然后用游标卡尺法即可 #include <iostream> ...
- POJ 2739. Sum of Consecutive Prime Numbers
Sum of Consecutive Prime Numbers Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 20050 ...
- POJ.2739 Sum of Consecutive Prime Numbers(水)
POJ.2739 Sum of Consecutive Prime Numbers(水) 代码总览 #include <cstdio> #include <cstring> # ...
- POJ 2739 Sum of Consecutive Prime Numbers(素数)
POJ 2739 Sum of Consecutive Prime Numbers(素数) http://poj.org/problem? id=2739 题意: 给你一个10000以内的自然数X.然 ...
- POJ 2739 Sum of Consecutive Prime Numbers(尺取法)
题目链接: 传送门 Sum of Consecutive Prime Numbers Time Limit: 1000MS Memory Limit: 65536K Description S ...
- poj 2739 Sum of Consecutive Prime Numbers 素数 读题 难度:0
Sum of Consecutive Prime Numbers Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 19697 ...
- POJ 2739 Sum of Consecutive Prime Numbers( *【素数存表】+暴力枚举 )
Sum of Consecutive Prime Numbers Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 19895 ...
- POJ 2739 Sum of Consecutive Prime Numbers【素数打表】
解题思路:给定一个数,判定它由几个连续的素数构成,输出这样的种数 用的筛法素数打表 Sum of Consecutive Prime Numbers Time Limit: 1000MS Memo ...
- poj 2379 Sum of Consecutive Prime Numbers
...
随机推荐
- [故障公告]阿里云“华东1地域部分负载均衡https访问异常“引起部分站点无法访问
今天上午 9:40 - 11:06 左右,由于阿里云“华东1地域部分负载均衡https访问异常”,造成我们的部分站点(尤其是博客后台)无法正常访问,给您带来了很大的麻烦,请您谅解. 现已恢复正常,如果 ...
- flask 更新数据库
在做项目的过程中,我们都遇到过,经常需要修改我们数据库的字段,在flask中,是通过ORM(对象关系映射)来创建数据库的,表--->model class,字段---->属性 在flask ...
- Python全栈开发之路 【第八篇】:面向对象编程设计与开发(2)
一.继承与派生 什么是继承? 继承指的是类与类之间的关系,是一种什么是什么的关系,继承的功能之一就是用来解决代码重用问题. 继承是一种创建新的类的方式,在python中,新建的类可以继承一个或多个父类 ...
- hibernate坑边闲话2
threw exception [Request processing failed; nested exception is org.springframework.orm.hibernate5.H ...
- springBoot项目启动类启动无法访问
springBoot项目启动类启动无法访问. 网上也查了一些资料,我这里总结.下不来虚的,也不废话. 解决办法: 1.若是maven项目,则找到右边Maven Projects --->Plug ...
- Shell脚本命令图片
查看相关文档:shell脚本1 shell脚本2
- mysql 无法退出sql命令行编辑
mysql 无法退出sql命令行编辑 | ANBOBhttp://www.anbob.com/archives/579.html mysql 无法退出sql命令行编辑 - 码农甲乙丙 - CSDN博客 ...
- oracle创建视图时一些问题
这几天创建视图的时候,遇见的问题. 一:创建视图的时候Oracle-报错:文字与格式字符串不匹配(ORA-01861) 我创建的时候用的 是to_date 然后我改成了to_char select X ...
- html5-attr和prop
###1.什么是attrbute和property attribute(attr) html标签的预定义属性 checked html标签的自定义属性 a eg: <input ...
- 把composer的源切换为 国际的源
把composer的源切换为 国际的源:composer config -g repo.packagist composer https://packagist.org