一本通1619【例 1】Prime Distance
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的更多相关文章
- 数论 - 素数的运用 --- poj 2689 : Prime Distance
Prime Distance Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 12512 Accepted: 3340 D ...
- UVA 10140 - Prime Distance(数论)
10140 - Prime Distance 题目链接 题意:求[l,r]区间内近期和最远的素数对. 思路:素数打表,打到sqrt(Max)就可以,然后利用大的表去筛素数.因为[l, r]最多100W ...
- poj 2689 Prime Distance(大区间素数)
题目链接:poj 2689 Prime Distance 题意: 给你一个很大的区间(区间差不超过100w),让你找出这个区间的相邻最大和最小的两对素数 题解: 正向去找这个区间的素数会超时,我们考虑 ...
- [POJ268] Prime Distance(素数筛)
/* * 二次筛素数 * POJ268----Prime Distance(数论,素数筛) */ #include<cstdio> #include<vector> using ...
- POJ2689 Prime Distance(数论:素数筛选模板)
题目链接:传送门 题目: Prime Distance Time Limit: 1000MS Memory Limit: 65536K Total Submissions: Accepted: Des ...
- POJ-2689 Prime Distance (两重筛素数,区间平移)
Prime Distance Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 13961 Accepted: 3725 D ...
- UVA10140 Prime Distance
UVA10140 Prime Distance 给定两个整数L,R(1<=L<=R<=2^{31},R-L<=10^6)L,R(1<=L<=R<=231,R− ...
- ZOJ 1842 Prime Distance(素数筛选法2次使用)
Prime Distance Time Limit: 2 Seconds Memory Limit: 65536 KB The branch of mathematics called nu ...
- 解题报告:poj2689 Prime Distance
2017-10-03 11:29:20 writer:pprp 来源:kuangbin模板 从已经筛选好的素数中筛选出规定区间的素数 /* *prime DIstance *给出一个区间[L,U],找 ...
随机推荐
- gitlab备份及恢复
gitlab备份步骤 https://blog.csdn.net/qq_31666147/article/details/79844107 gitlab版本 下载地址 https://mirrors ...
- Trusted Block Chain Summit(2018.10.09)
时间:2018.10.09地点:北京金隅喜来登大酒店
- 一个有趣的问题——HTTP是“超文本传输协议”还是“超文本转移协议”
最近在看<HTTP图解>这本书,书中提到了对国内对HTTP协议名称的翻译问题,并且给出了一些网友讨论的原稿链接,我看了一下觉得挺有意思的,另外我本人也觉得翻译对于理解协议本身非常重要,就整 ...
- C# 泛型分组和Linq分组的异同
没什么好说的,因为用的到,所以作个记录, 代码如下: using System; using System.Collections.Generic; using System.Linq; using ...
- UWP简单示例(三):快速开发2D游戏引擎
准备 IDE:Visual Studio 图形 API:Win2D MSDN 教程:UWP游戏开发 游戏开发涉及哪些技术? 游戏开发是一门复杂的艺术,编码方面你需要考虑图形.输入和网络 以及相对独立的 ...
- VMware workstation运维实践系列博客导航
第一章:VMware workstation虚拟化1.1 VMware workstation计算网络存储介绍1.2 VMware workstation其他功能特性介绍1.3 VMware work ...
- Zabbix监控系统部署:前端初始化
1. 概述 在上一篇博客<Zabbix监控系统部署:源码安装.md>中,主要进行了zabbix最新版的源码编译安装. (博客园地址:https://www.cnblogs.com/liwa ...
- cometd简单用例
准备工作 整个例子的源码下载:http://pan.baidu.com/s/1gfFYSbp 下载服务端jar文件 Comet4J目前仅支持Tomcat6.7版本,根据您所使用的Tomcat版本下载[ ...
- M1阶段个人总结
经过4周的开发,我们团队的第一阶段已经结束了. 这一个月来我由于其他事情较多,所以开发的工作主要交给了另外的三名同学. 我主要负责制定代码规范和工程结构,通过github来跟进项目进度,提供一些技术支 ...
- 个人阅读作业WEEK7 (软件工程的瀑布, 大泥球, 教堂,集市,和银弹)
一 . 关于银弹 (Silver Bullet) 银弹,被引申为解决问题的有效办法.IBM大型机之父福瑞德·布鲁克斯在1986年的论文<没有银弹>中表达了他的观点:软件工程中不存在银弹—— ...