Description

自从GZS成为G神之后,追随者不计其数,更是有了大名鼎鼎的拜神论:

"吾尝终日编程也,不如须臾之拜拜G神也;吾尝打字刷题也,不如一日三拜G神也;

拜拜G神,程序非长也,而出结果;三拜G神,打字非快也,而能AC。

吾日三拜G神也!!!“

作为菜鸟,经常遇到一些难题,于是就去拜见G神了。G神一看题目,微微一笑说道:“这种水题也算难题?我闭着眼都能一分钟刷十道!”毕竟是G神,我等菜鸟还是得虚心向G神学习。各位大神们,相信这道水题你们也能很快就AC吧。题目是这样的:

给定一个范围[l,r],求[l, r]中的距离最近的两个相邻素数和距离最远的两个相邻素数。

Input

多组测试数据,每组数据一行,包含两个数字l和r。1<=l<=r<=5*10^6。

Output

如果存在,则按样例格式输出最近的两个素数和最远的两个素数(如果有多个,输出最小的);如果不存在,输出一行:There are no adjacent primes.

Sample Input 1

2 17
14 17

Sample Output 1

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

Source

qduoj 第一次月赛 for 2014级

思路:用欧拉筛法先筛出素数,然后遍历两次找出最大的和最小的,注意1既不是素数也不是合数

代码:

#include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#include<cmath> using namespace std;
int prime[5000005];
bool vis[5000006];
void oula() {
int cnt=0;
memset(prime,0,sizeof(prime));
memset(vis,false,sizeof(vis));
for(int t=2; t<=5000005; t++) {
if(!vis[t])
prime[cnt++]=t;
for(int j=0; j<cnt&&t*prime[j]<=5000005; j++) {
vis[t*prime[j]]=true;
if(t%prime[j]==0)
break;
}
}
} int a[5000005];
int b[5000005]; int main()
{ int l,r;
int k;
int k2;
oula();
vis[1]=true;
while(cin>>l>>r)
{
k=0;
k2=0;
for(int t=l;t<=r;t++)
{
if(vis[t]==false)
{
a[k++]=t;
} } for(int t=1;t<k;t++)
{
b[k2++]=a[t]-a[t-1];
}
sort(b,b+k2);
int s1,s2,s3,s4;
for(int t=1;t<k;t++)
{
if(a[t]-a[t-1]==b[0])
{
s1=a[t-1];
s2=a[t];
break;
}
}
for(int t=1;t<k;t++)
{
if(a[t]-a[t-1]==b[k2-1])
{
s3=a[t-1];
s4=a[t];
break;
}
}
if(k>1)
cout<<s1<<","<<s2<<" are closest, "<<s3<<","<<s4<<" are most distant."<<endl;
else
{
cout<<"There are no adjacent primes."<<endl;
}
} return 0;
}

QDU-GZS与素数大法(素数筛法)的更多相关文章

  1. poj 2689 Prime Distance (素数二次筛法)

    2689 -- Prime Distance 没怎么研究过数论,还是今天才知道有素数二次筛法这样的东西. 题意是,要求求出给定区间内相邻两个素数的最大和最小差. 二次筛法的意思其实就是先将1~sqrt ...

  2. HDU 2098 分拆素数和(素数)

    HDU 2098 分拆素数和(素数) http://acm.hdu.edu.cn/showproblem.php?pid=2098 题意: 给你一个偶数,问你这个偶数有多少种方式能由两个不同的素数构成 ...

  3. GDUFE-OJ 1359校庆素数 埃氏筛法

    Problem Description: 包含33的素数称为校庆素数. 她想知道在L和R之间(包含L和R)有多少个校庆素数. 比如 2333 就是一个校庆素数. Input: 输入的第一行包括一个T( ...

  4. [洛谷P3383][模板]线性筛素数-欧拉筛法

    Description 如题,给定一个范围N,你需要处理M个某数字是否为质数的询问(每个数字均在范围1-N内) Input&Output Input 第一行包含两个正整数N.M,分别表示查询的 ...

  5. 埃氏筛法求素数&构造素数表求素数

    埃氏筛法求素数和构造素数表求素数是一个道理. 首先,列出从2开始的所有自然数,构造一个序列: 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 1 ...

  6. 素数筛 : Eratosthenes 筛法, 线性筛法

    这是两种简单的素数筛法, 好不容易理解了以后写篇博客加深下记忆 首先, 这两种算法用于解决的问题是 : 求小于n的所有素数 ( 个数 ) 比如 这道题 在不了解这两个素数筛算法的同学, 可能会这么写一 ...

  7. 关于素数:求不超过n的素数,素数的判定(Miller Rabin 测试)

    关于素数的基本介绍请参考百度百科here和维基百科here的介绍 首先介绍几条关于素数的基本定理: 定理1:如果n不是素数,则n至少有一个( 1, sqrt(n) ]范围内的的因子 定理2:如果n不是 ...

  8. 九度OJ 1163:素数 (素数)

    时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:8496 解决:2887 题目描述: 输入一个整数n(2<=n<=10000),要求输出所有从1到这个整数之间(不包括1和这个整数 ...

  9. hdu2098 分拆素数和 素数筛

    将一个偶数拆成两个素数的和,欧拉筛暴力 #include<stdio.h> #include<string.h> #define N 10001 ]; ]; ,j; void ...

随机推荐

  1. javascript(7)

    js中基于对象==js面向对象 js中没有类class,但是它 JavaScript是一种面向(基于)对象的动态脚本语言,是一种基于对象和事件驱动并具有安全性能的脚本语言.它具有面向对象语言所特有的各 ...

  2. Maven项目中使用JUnit进行单元测试

    1.打开maven项目中的pom.xml,添加JUnit 的jar包 2.在src/test/java下右键新建JUnit Test Cast

  3. hadoop源码剖析--hdfs安全模式

    一.什么是安全模式 hadoop安全模式是name node的一种状态,处于该状态时有种量特性: 1.namenode不接受任何对hfds文件系统的改变操作(即此时整个文件系统处于只读状态): 2.不 ...

  4. 善用搜索--->描述问题 [关于SwipeRefreshLayout]

    遇到了一个问题,SwipeRefreshLayout没法在加载listView之前呈现progressBar.我一直在想,是不是只能在listView加载出来才能呈现它. 发邮件问了一个开发者,他说他 ...

  5. BZOJ_2802_[Poi2012]Warehouse Store_堆+贪心

    BZOJ_2802_[Poi2012]Warehouse Store_堆+贪心 Description 有一家专卖一种商品的店,考虑连续的n天. 第i天上午会进货Ai件商品,中午的时候会有顾客需要购买 ...

  6. ACM学习历程—BestCoder 2015百度之星资格赛1003 IP聚合(set容器)

    Problem Description 当今世界,网络已经无处不在了,小度熊由于犯了错误,当上了度度公司的网络管理员,他手上有大量的 IP列表,小度熊想知道在某个固定的子网掩码下,有多少个网络地址.网 ...

  7. 设计四个线程,其中两个线程每次对j加1,另外两个线程每次对j减1

    public class ManyThreads2 { private int j = 0; public synchronized void inc() { j++; System.out.prin ...

  8. POJ3177(无向图变双连通图)

    Redundant Paths Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 11514   Accepted: 4946 ...

  9. 一行代码解决IE6/7/8/9/10兼容问题

    百度源代码如下 <!Doctype html><html xmlns=http://www.w3.org/1999/xhtml xmlns:bd=http://www.baidu.c ...

  10. Idea无法加载主类

    今天重装了下电脑,运行idea发现各种问题. 直接进主题哈, 遇到三种情况 第一种: 首先查看这里是否有多个,只保留当前需要用工程路径.点击P右边的删除即可 删除后 然后运行是否能运行. 如果没有的话 ...