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. HTML5中的execCommand命令

    HTML5中的execCommand命令 在html5中,可以通过execCommand方法来运行一条命令,每一条命令都将对用户通过鼠标所选取的内容执行一些操作. 1. execCommand方法 浏 ...

  2. PAT A1097 Deduplication on a Linked List (25 分)——链表

    Given a singly linked list L with integer keys, you are supposed to remove the nodes with duplicated ...

  3. AI 正则化

    正则化,是减少泛化误差的技术.

  4. FreeRTOS创建任务

    创建任务的函数如下: 第一个参数是:任务函数指针,即任务函数名. 敲黑板:创建任务和任务函数是两码事,一定要分清楚: 第二个参数是:这个参数不被FREE RTOS调用,就是辅助调试用的: 第三个参数是 ...

  5. MySQL(一)MySQL基础介绍

    最近的学习内容是数据库相关的一些知识,主要以MySQL为主,参考书籍——<MySQL必知必会> MySQL学习及下载地址:https://dev.mysql.com/ MySQL学习使用注 ...

  6. 奇怪的组数length属性

    Java中的数组其实也是一个对象,但是确实是一个特殊的对象,实在是太特殊了,继承自Object, 多出一个属性length,改写了clone方法.   我debug了数组对象的运行时的Class对象, ...

  7. SkylineGlobe 支持火狐和谷歌浏览器的可运行示例代码

    示例代码: <html> <head> <title>3dml的Feature对象选中和隐藏</title> <script type=" ...

  8. BZOJ 2810 [Apio2012]kunai

    Orz Starria 现在看来,也不是很难,能做...就是不能写 可以想到维护每个苦无扫过的矩形,然后做矩形面积并即可. 然后发现自己只会$n^2$的处理方法... 想了好久之后问了一发 Starr ...

  9. Bootstrap栅栏布局里col-xs-*、col-sm-*、col-md-*、col-lg-*之间的区别及使用方法

    原文:Bootstrap栅栏布局里col-xs-*.col-sm-*.col-md-*.col-lg-*之间的区别及使用方法 版权声明:本文为博主原创文章,未经博主允许不得转载. https://bl ...

  10. 机器学习(三)--- scala学习笔记

    Scala是一门多范式的编程语言,一种类似Java的编程语言,设计初衷是实现可伸缩的语言.并集成面向对象编程和函数式编程的各种特性. Spark是UC Berkeley AMP lab所开源的类Had ...