素数筛

#include<stdio.h>
#include<string.h>
#include<algorithm> using namespace std;
#define MAXN 47000
#define inf 100000000 bool z[MAXN];
int x[MAXN];
bool y[];
int x1[]; int main()
{
int a,b;
for(int i=;i<=;i++) //可以从小的素数开始筛
{
if(!z[i])
for(int j=i*i;j<MAXN;j+=i)
z[j]=;
}
int cnt=;
for(int i=;i<MAXN;i++) //这个范围可以筛出2147483647
if(!z[i])
x[cnt++]=i;
while(scanf("%d%d",&a,&b)!=EOF)
{
int m1=inf,m2=-;
int en=b-a;
memset(y,,sizeof(y));
if(a==)
a++; for(int i=;i<cnt;i++) //b-a<=1000000 从a开始筛
{
int a1,b1;
a1=(a-)/x[i]+;
b1=b/x[i];
for(int j=a1;j<=b1;j++)
if(j>)
y[j*x[i]-a]=;
} int cnt1=; for(int i=;i<=b-a;i++)
if(!y[i])
{
x1[cnt1++]=i+a;
} int i=,j=cnt1-;
while(x1[i]<a)
i++;
while(x1[j]>b&&j>=)
j--;
int l1,r1,l2,r2; for(int k=i;k+<=j;k++)
{
if(x1[k+]-x1[k]>m2)
{
m2=x1[k+]-x1[k];
r2=x1[k+];
l2=x1[k];
}
if(x1[k+]-x1[k]<m1)
{
m1=x1[k+]-x1[k];
r1=x1[k+];
l1=x1[k];
}
}
if(m2==-)
printf("There are no adjacent primes.\n");
else
printf("%d,%d are closest, %d,%d are most distant.\n",l1,r1,l2,r2);
}
return ;
}

素数筛 poj 2689的更多相关文章

  1. 素数筛 poj 3518

    给你一个n 求包括n的一个非素数区间有多长 +1输出 #include<stdio.h> #include<string.h> #include<algorithm> ...

  2. poj 2689 Prime Distance(大区间筛素数)

    http://poj.org/problem?id=2689 题意:给出一个大区间[L,U],分别求出该区间内连续的相差最小和相差最大的素数对. 由于L<U<=2147483647,直接筛 ...

  3. poj 2689 Prime Distance(大区间素数)

    题目链接:poj 2689 Prime Distance 题意: 给你一个很大的区间(区间差不超过100w),让你找出这个区间的相邻最大和最小的两对素数 题解: 正向去找这个区间的素数会超时,我们考虑 ...

  4. 大区间素数筛选(POJ 2689)

    /* *POJ 2689 Prime Distance *给出一个区间[L,U],找出区间内容.相邻的距离最近的两个素数和距离最远的两个素数 *1<=L<U<=2147483647 ...

  5. 数学#素数筛法 HDU 4548&POJ 2689

    找素数本来是很简单的问题,但当数据变大时,用朴素思想来找素数想必是会超时的,所以用素数筛法. 素数筛法 打表伪代码(用prime数组保存区间内的所有素数): void isPrime() vis[]数 ...

  6. poj 3048 Max Factor(素数筛)

    这题就是先写个素数筛,存到prime里,之后遍历就好,取余,看是否等于0,如果等于0就更新,感觉自己说的不明白,引用下别人的话吧: 素数打表,找出20000之前的所有素数,存入prime数组,对于每个 ...

  7. POJ 2689 Prime Distance (素数筛选法,大区间筛选)

    题意:给出一个区间[L,U],找出区间里相邻的距离最近的两个素数和距离最远的两个素数. 用素数筛选法.所有小于U的数,如果是合数,必定是某个因子(2到sqrt(U)间的素数)的倍数.由于sqrt(U) ...

  8. POJ - 2689 Prime Distance (区间筛)

    题意:求[L,R]中差值最小和最大的相邻素数(区间长度不超过1e6). 由于非素数$n$必然能被一个不超过$\sqrt n$的素数筛掉,因此首先筛出$[1,\sqrt R]$中的全部素数,然后用这些素 ...

  9. POJ 3126 Prime Path (bfs+欧拉线性素数筛)

    Description The ministers of the cabinet were quite upset by the message from the Chief of Security ...

随机推荐

  1. SQL——查询考试

    一.            设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四个表的结构分别如表1-1的表(一)~表( ...

  2. Windows系统Stunnel客户端的配置

    Stunnel官方就有Windows版本,到下面的地址下载: https://www.stunnel.org/downloads.html 选择”stunnel-X.XX-installer.exe“ ...

  3. [No000062]读书八字诀:怎样将书读得通透?

    从吃透到通透 有种说法,吃透一本书,才算好好读过.然而比吃透境界更高,是通透.吃透仅限于书中内容,通透则是将书中内容与正反上下.古今中外背景知识相互关联. 当你做到读书通透,收获将远远大于手头那一本书 ...

  4. 一句话爆破速度提升一千倍python脚本

    这个脚本是接地提供的思路,一句话爆破速度提升一千倍,看了他的帖子然而没有看到工具,思路很牛逼,我提供一个Python脚本本地测试了下,十万密码只需要3秒,速度还是可以的 # coding:utf-8 ...

  5. css相关问题

    display:none和visibility:hidden的区别? 前几天遇到的这个问题,表格布局:::::display:none 隐藏对应的元素,在文档布局中不再给它分配空间,它各边的元素会合拢 ...

  6. FSL - MELODIC

    Source: http://fsl.fmrib.ox.ac.uk/fsl/fslwiki/MELODIC; https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/MELODI ...

  7. python学习之用正则处理log(持续更新,ftace)

    1. ftrace的输出如下图所示: [003] 48375.494595: clear_buddies <-pick_next_entity m=re.match("^\[([0-9 ...

  8. 【转】浅析Sql Server参数化查询

    转载至: http://www.cnblogs.com/lzrabbit/archive/2012/04/21/2460978.html 错误认识1.不需要防止sql注入的地方无需参数化 参数化查询就 ...

  9. Linux 信号详解二(信号分类,信号处理,kill)

    信号分类 信号分为可靠信号和不可靠信号 不可靠信号的缺点 ①:处理完信号,需要重新再注册信号:②信号可能丢失. Linux已经对缺点①做了优化,现在的不可靠问题主要指的是信号可能丢失 信号还可以分为实 ...

  10. scala 学习笔记(02) 元组Tuple、数组Array、Map、文件读写、网页抓取示例

    package yjmyzz import java.io.PrintWriter import java.util.Date import scala.io.Source object ScalaA ...