1619: 【例 1】Prime Distance

题目描述

原题来自:Waterloo local,题面详见 POJ 2689

给定两个整数 L,R,求闭区间 [L,R] 中相邻两个质数差值最小的数对与差值最大的数对。当存在多个时,输出靠前的素数对。

输入格式

多组数据。每行两个数 L,R。

输出格式

详见输出样例。

样例

样例输入

2 17
14 17

样例输出

2,3 are closest, 7,11 are most distant.
There are no adjacent primes.

数据范围与提示

对于全部数据 1≤L<R<231,R−L≤106

sol:不会算复杂度,总之怎么暴力都能过

先筛出1~500000的质数,在 l~r 中暴力去掉合数(真的非常非常非常非常非常非常暴力)

for(i=;i<=*Prim&&Prim[i]<=r;i++)
{
int aa=(l-)/Prim[i]+;
aa+=((aa==)?():());
int bb=r/Prim[i];
for(j=aa;j<=bb;j++)
{
Bo[j*Prim[i]-l+]|=;
}
}

然后尴尬的过了

Ps:注意如果 l =1 的话要把 l 变成 2,因为 1 不是质数也筛不掉,不直接去掉会当成答案记录

#include <bits/stdc++.h>
using namespace std;
typedef int ll;
inline ll read()
{
ll s=;
bool f=;
char ch=' ';
while(!isdigit(ch))
{
f|=(ch=='-');
ch=getchar();
}
while(isdigit(ch))
{
s=(s<<)+(s<<)+(ch^);
ch=getchar();
}
return (f)?(-s):(s);
}
#define R(x) x=read()
inline void write(ll x)
{
if(x<)
{
putchar('-');
x=-x;
}
if(x<)
{
putchar(x+'');
return;
}
write(x/);
putchar((x%)+'');
return;
}
inline void writeln(ll x)
{
write(x);
putchar('\n');
return;
}
#define W(x) write(x),putchar(' ')
#define Wl(x) writeln(x)
const int N=;
int Prim[N];
bool Bo[N];
bool Used[N];
inline void Pre_Prime()
{
int i,j;
for(i=;i<=;i++)
{
if(!Bo[i])
{
Prim[++*Prim]=i;
}
for(j=;j<=*Prim&&Prim[j]*i<=;j++)
{
Bo[Prim[j]*i]=;
if(i%Prim[j]==) break;
}
}
}
int Num[N];
int main()
{
int i,j,l,r;
Pre_Prime();
while(~scanf("%d%d",&l,&r))
{
l+=(l==)?():();
*Num=;
memset(Bo,,sizeof Bo);
for(i=;i<=*Prim&&Prim[i]<=r;i++)
{
int aa=(l-)/Prim[i]+;
aa+=((aa==)?():());
int bb=r/Prim[i];
for(j=aa;j<=bb;j++)
{
Bo[j*Prim[i]-l+]|=;
}
}
for(i=;i<=r-l+;i++) if(!Bo[i])
{
// printf("i=%d\n",i);
Num[++*Num]=i+l-;
}
if(*Num<)
{
puts("There are no adjacent primes.");
}
else
{
int O1=,O2=;
for(i=;i<*Num;i++)
{
if(Num[i+]-Num[i]<Num[O1+]-Num[O1]) O1=i;
if(Num[i+]-Num[i]>Num[O2+]-Num[O2]) O2=i;
}
printf("%d,%d are closest, %d,%d are most distant.",Num[O1],Num[O1+],Num[O2],Num[O2+]);
putchar('\n');
}
}
return ;
}
/*
input
2 17
14 17
output
2,3 are closest, 7,11 are most distant.
There are no adjacent primes.
*/

一本通1619【例 1】Prime Distance的更多相关文章

  1. 数论 - 素数的运用 --- poj 2689 : Prime Distance

    Prime Distance Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 12512   Accepted: 3340 D ...

  2. UVA 10140 - Prime Distance(数论)

    10140 - Prime Distance 题目链接 题意:求[l,r]区间内近期和最远的素数对. 思路:素数打表,打到sqrt(Max)就可以,然后利用大的表去筛素数.因为[l, r]最多100W ...

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

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

  4. [POJ268] Prime Distance(素数筛)

    /* * 二次筛素数 * POJ268----Prime Distance(数论,素数筛) */ #include<cstdio> #include<vector> using ...

  5. POJ2689 Prime Distance(数论:素数筛选模板)

    题目链接:传送门 题目: Prime Distance Time Limit: 1000MS Memory Limit: 65536K Total Submissions: Accepted: Des ...

  6. POJ-2689 Prime Distance (两重筛素数,区间平移)

    Prime Distance Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 13961   Accepted: 3725 D ...

  7. UVA10140 Prime Distance

    UVA10140 Prime Distance 给定两个整数L,R(1<=L<=R<=2^{31},R-L<=10^6)L,R(1<=L<=R<=231,R− ...

  8. ZOJ 1842 Prime Distance(素数筛选法2次使用)

    Prime Distance Time Limit: 2 Seconds      Memory Limit: 65536 KB The branch of mathematics called nu ...

  9. 解题报告:poj2689 Prime Distance

    2017-10-03 11:29:20 writer:pprp 来源:kuangbin模板 从已经筛选好的素数中筛选出规定区间的素数 /* *prime DIstance *给出一个区间[L,U],找 ...

随机推荐

  1. nfs原理及安装配置

    一.简介 二.工作原理 三.安装配置 一.简介 NFS(Network File System)即网络文件系统,它允许网络中的计算机之间通过网络共享资源.将NFS主机分享的目录,挂载到本地客户端当中, ...

  2. properties中的编码如何生成:例如\u7AD9\u70B9这种。

    在eclipse中的properties中的一种编码,例如\u7AD9\u70B9,是如何自动生成的. 这种编码方式当你要增加某个字段的时候,也要相应的添加这种编码方式下的格式,具体方法如下:

  3. odoo中的ORM操作

    ORM方法简介 OpenERP的关键组件, ORM是一个完整的对象关系映射层,是开发人员不必编写基本的SQL管道. 业务对象被声明继承字models.Models的python类. 这让业务对象在OR ...

  4. odoo 学习

    1.2.3.41.2.5.62.410.6变成1.234,1.256,2.4,10.6 def get_bom_namenum(self, cr, uid, ids, field_name, arg, ...

  5. SQL查询今天、昨天、7天内、30天 - 转

    今天的所有数据:select * from 表名 where DateDiff(dd,datetime类型字段,getdate())=0 昨天的所有数据:select * from 表名 where ...

  6. Ionic Android项目Splash设置

    ionic项目中,在splashscreen消失后会出现零点几秒的白屏,再出现app页面. 1. 安装Cordova splash screen插件 ionic plugin add org.apac ...

  7. C# 大型电商项目性能优化(一)

    经过几个月的忙碌,我厂最近的电商平台项目终于上线,期间遇到的问题以及解决方案,也可以拿来和大家多做交流了. 我厂的项目大多采用C#.net,使用逐渐发展并流行起来的EF(Entity Framewor ...

  8. 【nodejs】让nodejs像后端mvc框架(asp.net mvc )一样处理请求--控制器的声明定义和发现篇(3/8)

    文章目录 前情概要 前面文章把路由已经介绍的差不多了,包括url映射,路由选择等.接下来讲一讲controller的一些基本规则 BaseController的所有代码都在这里拉.相当简单. 主要逻辑 ...

  9. vs2017安装

    每次安装包都搞的很大,而且出各式各式的问题. 安装程序清单签名失败 运行'vs_Enterprise.exe'时,出现'安装程序清单签名失败'的错误,直接删除'vs_installer.opc'文件, ...

  10. @Scheduled 定时

    此文章记录在spring boot项目中的使用 1,在项目的启动类中加注解@EnableScheduling,表示此项目可以进行定时 @SpringBootApplication @EnableSch ...