poj 2689 大范围内素数筛选
/**
给定一定范围求其内的素数 注意:
**/ #include <iostream>
#include <math.h>
#include <cstring>
using namespace std;
#define maxn 1000000
long long prime[];
long long cprime[];
long long isprime[maxn+];
long long vis[maxn+];
long long q;
void getprime(){
//memset(isprime,0,sizeof(isprime));
q =-;
long long i,j;
isprime[] = isprime[] =;
for(i=;i<maxn;i++){
if(!isprime[i])
prime[++q] = i;
for(j=;j<=q&&prime[j]*i<maxn;j++){
isprime[prime[j]*i] =;
if(i%prime[j]==)
break;
}
}
} long long qt;
void getprime1(long long a, long long b){
qt =-;
if(b<maxn){
for(long long i=a;i<=b;i++){
if(!isprime[i])
cprime[++qt] = i;
}
}else{
memset(vis,,sizeof(vis));
long long i,k;
for(i=;i<=b-a;i++){
vis[i] =;
}
for(i=;prime[i]*prime[i]<=b&&i<=q;i++){
k = a/prime[i];
if(k*prime[i]<a) k++;
if(k<=) k++;
while(k*prime[i]<=b){
vis[k*prime[i]-a] =;
k++;
}
}
for(i=;i<=b-a;i++){
if(vis[i]==)
cprime[++qt] = i+a;
}
} }
int main()
{
getprime();
//for(int i=0;i<10;i++)
// cout<<prime[i]<<endl;
long long a,b;
while(cin>>a>>b){
long long maxnum =-;
long long minnum =0x3f3f3f3f;
getprime1(a,b);
long long max1,max2,min1,min2;
// for(int i=0;i<=qt;i++)
// cout<<cprime[i]<<endl;
for(long long i=;i<qt;i++){
long long temp = cprime[i+]-cprime[i];
if(temp>maxnum){
maxnum =temp;
max1 = cprime[i];
max2 = cprime[i+];
}
if(temp<minnum){
minnum =temp;
min1 = cprime[i];
min2 = cprime[i+];
}
}
if((qt+)<=)
cout<<"There are no adjacent primes."<<endl;
else
cout<<min1<<","<<min2<<" are closest, "<<max1<<","<<max2<<" are most distant."<<endl;
}
return ;
}
poj 2689 大范围内素数筛选的更多相关文章
- POJ 2689 Prime Distance (素数筛选法,大区间筛选)
题意:给出一个区间[L,U],找出区间里相邻的距离最近的两个素数和距离最远的两个素数. 用素数筛选法.所有小于U的数,如果是合数,必定是某个因子(2到sqrt(U)间的素数)的倍数.由于sqrt(U) ...
- POJ 2689 Prime Distance(素数筛选)
题目链接:http://poj.org/problem?id=2689 题意:给出一个区间[L, R],找出区间内相连的,距离最近和距离最远的两个素数对.其中(1<=L<R<=2,1 ...
- poj 2262 Goldbach's Conjecture(素数筛选法)
http://poj.org/problem?id=2262 Goldbach's Conjecture Time Limit: 1000MS Memory Limit: 65536K Total ...
- POJ 2689 Prime Distance (素数+两次筛选)
题目地址:http://poj.org/problem?id=2689 题意:给你一个不超过1000000的区间L-R,要你求出区间内相邻素数差的最大最小值,输出相邻素数. AC代码: #includ ...
- poj 2689 Prime Distance (素数二次筛法)
2689 -- Prime Distance 没怎么研究过数论,还是今天才知道有素数二次筛法这样的东西. 题意是,要求求出给定区间内相邻两个素数的最大和最小差. 二次筛法的意思其实就是先将1~sqrt ...
- 大区间素数筛选(POJ 2689)
/* *POJ 2689 Prime Distance *给出一个区间[L,U],找出区间内容.相邻的距离最近的两个素数和距离最远的两个素数 *1<=L<U<=2147483647 ...
- poj 2689 Prime Distance(大区间素数)
题目链接:poj 2689 Prime Distance 题意: 给你一个很大的区间(区间差不超过100w),让你找出这个区间的相邻最大和最小的两对素数 题解: 正向去找这个区间的素数会超时,我们考虑 ...
- ACM/ICPC 之 数论-素数筛选法 与 "打表"思路(POJ 1595)
何为"打表"呢,说得简单点就是: 有时候与其重复运行同样的算法得出答案,还不如直接用算法把这组数据所有可能的答案都枚举出来存到一个足够大的容器中去-例如数组(打表),然后再输入数据 ...
- POJ 2773 Happy 2006#素数筛选+容斥原理+二分
http://poj.org/problem?id=2773 说实话这道题..一点都不Happy好吗 似乎还可以用欧拉函数来解这道题,但正好刚学了容斥原理和二分,就用这个解法吧. 题解:要求输出[1, ...
随机推荐
- read和onload jquery.val
$(document).load(); 当web页面以及其附带的资源文件,如CSS,Scripts,图片等,加载完毕后执行此方法.常用于检测页面(及其附带资源)是否加载完毕. $(document). ...
- 指针直接赋值为整型AND利用宏定义求结构体成员偏移量
首先我们要更正一个很熟悉的概念,那就是指针不仅仅是“地址”,指针还有一个很重要的特性,那就是“类型”. 指针初始化时,“=”的右操作数; 除外,该语句表示指针为空): 所以 ; 这样的代码是不允许的. ...
- OC语法8——@class关键字
@class关键字: 在当前类中若要引用其他类的对象作成员变量(Book *book),我们以前采用的方式是 #import "Book.h" 但 #import "B ...
- hadoop笔记之Hive的数据存储(外部表)
Hive的数据存储(外部表) Hive的数据存储(外部表) 外部表 指向已经在HDFS中存在的数据,可以创建Partition 它和内部表在元数据的组织上是相同的,而实际数据的存储则有较大的差异 外部 ...
- ScrollView属性fillViewport解决android布局不能撑满全屏的问题
转:http://blog.sina.com.cn/s/blog_6cf2ea6a0102v61f.html 开发项目中遇到一个问题,布局高度在某些国产酷派小屏幕手机上高度不够全部显示,于是使用了Sc ...
- IIS怎么设置本地域名解析(本地域名测试配置)
对于IIS相信大家都不陌生,可以用来作为网站服务器,可以解析网站内容,访问时可以用端口的方式访问,也可以用域名的方式访问.下面我就介绍一下,怎么在本地用域名的方式访问,怎么用IIS进行本地域名解析. ...
- C#学习日志 day10 -------------- problem statement
Revision History Date Issue Description Author 15/May/2015 1.0 Finish most of the designed function. ...
- linux下gmplayer安装(亲测OK!)
需要的安装包及下载地址: mplayer源代码包(MPlayer-1.0rc4.tar.bz2)下载:http://www.mplayerhq.hu/MPlayer/releases/ 解码器安装包 ...
- KPI考核
编辑 本词条缺少名片图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! KPI考核,Key Performance Indicator的缩写,指的是关键绩效指标考核法. 中文名 KPI考核 外 ...
- Oracle inner join、left join、right join 、+左边或者右边的区别
我们以Oracle自带的表来做例子 主要两张表:dept.emp 一个是部门,一个是员工表结构如下: emp name null? Type Empno not null number(4) enam ...