相邻素数对(质数筛选)
来源:互联网 发布:windows官方商城 编辑:程序博客网 时间:2024/05/18 02:41
请你求出区间 [l,r] 上距离最近的相邻的素数对和距离最远的相邻的素数对。2,3 是相邻的素数,2,5 不是相邻的素数。距离定义为 2 个素数的差的绝对值。比如 2,3 距离为 1。
输入格式
输入 2 个整数 l,r(1≤l≤r≤9000000)
输出格式
如果 a, b(a < b)是距离最近的素数对,c,d(c < d)是距离最远的素数对,按照如下格式输出
a,b are closest, c,d are most distant.
如果最近或者最远有多对,输出 a 和 c 最小的。如果没有相邻是素数对,输出
There are no adjacent primes.
样例输入1
3 10
样例输出1
3,5 are closest, 3,5 are most distant.
样例输入2
14 17
样例输出2
There are no adjacent primes.
#include <iostream>#include <cstdio>using namespace std;int a[8000005];int main(){ for(int i = 0;i < 8000005;i ++){ a[i] = 1; } int l,r; cin>>l>>r; if(l == 1){//1不为质数 l = 2; } for(int i = 2;i*i<=r;i ++){//质数筛选 if(a[i]){ for(int j = i * i;j <= r;j += i){ a[j] = 0; } } } int flag = 0;//第一次判断时使用. int maxx = 0,minn = 0; int tempmaxx = 0,tempminn = 0; int maxpointx = 0,maxpointy = 0; int minpointx = 0,minpointy = 0; int temp = 0; for(int i = l;i <= r;i ++){ while(!a[i]&&i<r){ i ++; } if(a[i] == 1&&i <= r) tempminn = i; i++; while(!a[i]&&i<r){ i++; } if(a[i] == 1&&i <= r) tempmaxx = i; // cout<<tempminn<<" "<<tempmaxx<<endl; if(tempmaxx - tempminn > maxx||!flag){ flag = 1; maxx = tempmaxx - tempminn; maxpointx = tempminn; maxpointy = tempmaxx; } if((tempmaxx - tempminn < minn&&tempmaxx - tempminn > 0)||!flag||minn == 0){//需要判断 minn = 0的时候情况 flag = 1; minn = tempmaxx - tempminn; minpointx = tempminn; minpointy = tempmaxx; } i --;//要考虑本次的第二个数和下一次第一个数的关系,将其作为第一个数 } if(!minn||!maxx||minpointx == 0||minpointy == 0||maxpointx ==0||maxpointy == 0){ cout<<"There are no adjacent primes."<<endl; }else{ cout<<minpointx<<","<<minpointy<<" are closest, "<<maxpointx<<","<<maxpointy<<" are most distant."<<endl; } return 0;}
0 0
- 相邻素数对(质数筛选)
- 质数/素数 和筛选
- 筛选法求质数(素数)
- 素数对<筛选法求解>
- 快速线性筛选法求素数(质数)
- 质数筛选
- 筛选质数
- 筛选法求素数表,并标记素数位置和合数最大质数位置 HOJ 2136
- HDU 1262 寻找素数对(素数筛选法)
- 质数 素数
- 质数 素数
- 质数(素数)
- 质数(素数)
- 素数筛选
- 筛选素数
- 素数筛选
- 筛选素数
- 素数筛选
- Mahout推荐引擎介绍
- 实例详解 网络协议概述:物理层、连接层、网络层、传输层、应用层
- 1009: Tom数
- java连接mysql-查询,插入,更新,删除
- 通过阿里云发布一个Tomcat,并通过域名访问
- 相邻素数对(质数筛选)
- 牛顿迭代式(Newton's Method)解多次方程
- 使用Amazon EC2及OpenVPN搭建属于自己的免费VPN服务器
- ubuntu16.04安装配置mod_python,apxs,apache
- C++ 图基础知识总结
- 自定义Veiw的实践(一)---一个简易侧滑菜单的实现
- hdu 2602 Bone Collector
- Codeforces 469D Two Sets【思维+并查集】
- PAT 1003 乙等 (我要通过) c++