素数筛 poj 2689
素数筛
#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的更多相关文章
- 素数筛 poj 3518
给你一个n 求包括n的一个非素数区间有多长 +1输出 #include<stdio.h> #include<string.h> #include<algorithm> ...
- poj 2689 Prime Distance(大区间筛素数)
http://poj.org/problem?id=2689 题意:给出一个大区间[L,U],分别求出该区间内连续的相差最小和相差最大的素数对. 由于L<U<=2147483647,直接筛 ...
- poj 2689 Prime Distance(大区间素数)
题目链接:poj 2689 Prime Distance 题意: 给你一个很大的区间(区间差不超过100w),让你找出这个区间的相邻最大和最小的两对素数 题解: 正向去找这个区间的素数会超时,我们考虑 ...
- 大区间素数筛选(POJ 2689)
/* *POJ 2689 Prime Distance *给出一个区间[L,U],找出区间内容.相邻的距离最近的两个素数和距离最远的两个素数 *1<=L<U<=2147483647 ...
- 数学#素数筛法 HDU 4548&POJ 2689
找素数本来是很简单的问题,但当数据变大时,用朴素思想来找素数想必是会超时的,所以用素数筛法. 素数筛法 打表伪代码(用prime数组保存区间内的所有素数): void isPrime() vis[]数 ...
- poj 3048 Max Factor(素数筛)
这题就是先写个素数筛,存到prime里,之后遍历就好,取余,看是否等于0,如果等于0就更新,感觉自己说的不明白,引用下别人的话吧: 素数打表,找出20000之前的所有素数,存入prime数组,对于每个 ...
- POJ 2689 Prime Distance (素数筛选法,大区间筛选)
题意:给出一个区间[L,U],找出区间里相邻的距离最近的两个素数和距离最远的两个素数. 用素数筛选法.所有小于U的数,如果是合数,必定是某个因子(2到sqrt(U)间的素数)的倍数.由于sqrt(U) ...
- POJ - 2689 Prime Distance (区间筛)
题意:求[L,R]中差值最小和最大的相邻素数(区间长度不超过1e6). 由于非素数$n$必然能被一个不超过$\sqrt n$的素数筛掉,因此首先筛出$[1,\sqrt R]$中的全部素数,然后用这些素 ...
- POJ 3126 Prime Path (bfs+欧拉线性素数筛)
Description The ministers of the cabinet were quite upset by the message from the Chief of Security ...
随机推荐
- java 25 - 1 网络编程的概述
网络编程概述 计算机网络 是指将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统. ...
- sql问题集合
1.sqlparameter @ 写在from前面
- TestLink测试软件安装条件检查不通过的解决方案
在第一次安装的时候出现这个错误信息 解决办法: 修改config.inc.php文件里的两个属性值为: $tlCfg->log_path = TL_ABS_PATH . 'logs' . DIR ...
- jmeter(二)录制脚本
对大多数刚开始接触性能测试的人来说,代码功力可能不是太好,我们可以通过工具,录制脚本来进行测试,以达到我们的目的 一般来讲,录制脚本有两种方法 一.利用badboy进行脚本录制 1.下载安装 badb ...
- 苹果系统里面部署ASP.NET
需要在global文件里设置一下 protected void Application_Start() { AreaRegistration.RegisterAllAreas(); FilterCon ...
- Windows 8.1 新增控件之 Flyout
本篇为大家介绍Flyout 控件,Flyout 属于一种轻量级交互控件,可以支持信息提示或用户交互.与传统Dialog 控件不同的是Flyout 控件可通过直接点击对话框外部区域忽略. Flyout ...
- [转]源代码的管理和发布:以SVN为例
FROM : http://ju.outofmemory.cn/entry/47277 前几天在微博吐槽了SVN的几个不爽的地方:.svn文件满天飞.分支管理的麻烦.不爽一般来说都是有过对比后才有如此 ...
- 在 C# App 中嵌入 Chrome 浏览器使用 CefSharp
介绍 以前曾试过在app中整合一个可靠又快速的web浏览器吗? 在本文中,你会学到如何轻松地将奇妙的CefSharp网页浏览器组件(基于Chromium)集成到你的C# app中. 然后,你可以使用此 ...
- codevs2806 红与黑
难度等级:白银 codevs2806 红与黑 题目描述 Description 有一个矩形房间,覆盖正方形瓷砖.每块瓷砖涂成了红色或黑色.一名男子站在黑色的瓷砖上,由此出发,可以移到四个相邻瓷砖之一, ...
- node基础05:路由基础
1.基础实例 //server.js var http = require("http"); var url = require("url"); var rou ...