朴素素数测试是O(x1/2)的,每一个数都测试下来就炸了

然而如果全部预处理的话才是做大死,时间空间各种炸(大约有1亿个数)

所以怎么平衡一下呢?

其实在预处理的时候可以只处理一半:把21474836471/2内的质数全部预处理出来(这些就是要用的全部质数),然后用这些质数线性筛一筛就能得到正解

= =

没了?

没了。

还是要吐槽一下数论题目虽然代码、题解都很好写,但我不相信我能在赛场上想到正解。。。

 #include <cstdio>
#include <iostream>
#define ma 65536
using namespace std;
bool b[ma];
int a[ma];
bool f[];
int main()
{
int l,r,j=;
for(int i=;i<=ma;i++)
{
if(!b[i])
a[++j]=i;
for(int k=;k<=j && a[k]*i<=ma;k++)
{
b[a[k]*i]=true;
if(i%a[k]==)
break;
}
}
int n=j;
while(~scanf("%d%d",&l,&r))
{
for(int i=;i<=r-l;i++)
f[i]=true;
for(int i=;i<=n;i++)
for(int j=max(,(l-)/a[i]+);j<=r/a[i];j++)
f[a[i]*j-l]=false;
int last=-;
int min1=-,min2,max1=-,max2;
if(l==)
f[]=false;
for(int i=;i<=r-l;i++)
if(f[i])
if(last==-)
last=i;
else
{
if(min1==-)
{
min1=last;
min2=i;
}
if(i-last<min2-min1)
{
min1=last;
min2=i;
}
if(max1==-)
{
max1=last;
max2=i;
}
if(i-last>max2-max1)
{
max1=last;
max2=i;
}
last=i;
}
if(max1==-)
printf("There are no adjacent primes.\n");
else
printf("%d,%d are closest, %d,%d are most distant.\n",min1+l,min2+l,max1+l,max2+l);
}
return ;
}

其实压一压行可以在30行左右搞定的

poj2689Prime Distance 素数测试的更多相关文章

  1. 数论 - Miller_Rabin素数测试 + pollard_rho算法分解质因数 ---- poj 1811 : Prime Test

    Prime Test Time Limit: 6000MS   Memory Limit: 65536K Total Submissions: 29046   Accepted: 7342 Case ...

  2. RSA,Miller-Rabin素数测试的源流及其证明

    一.RSA与公钥加密系统的起源与影响. 为了更好地突出公钥加密系统相对私钥加密系统的优势,让我们从这两个问题开始: 这个世界上如果没有公钥加密系统会怎么样呢?全用私钥加密系统会出现什么问题呢? 首先, ...

  3. hdu 6169 Senior PanⅡ Miller_Rabin素数测试+容斥

    Senior PanⅡ Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 524288/524288 K (Java/Others) Pr ...

  4. Miller_Rabin 素数测试

    费马定理的逆定理几乎可以用来判断一个数是否为素数,但是有一些数是判断不出来的,因此,Miller_Rabin测试方法对费马的测试过程做了改进,克服其存在的问题. 推理过程如下(摘自维基百科): 摘自另 ...

  5. Miiler-Robin素数测试与Pollard-Rho大数分解法

    板题 Miiler-Robin素数测试 目前已知分解质因数以及检测质数确定性方法就只能\(sqrt{n}\)试除 但是我们可以基于大量测试的随机算法而有大把握说明一个数是质数 Miler-Robin素 ...

  6. Miller-Rabin素数测试算法(POJ1811Prime Test)

    题目链接:http://poj.org/problem?id=1811 题目解析:2<=n<2^54,如果n是素数直接输出,否则求N的最小质因数. 求大整数最小质因数的算法没看懂,不打算看 ...

  7. poj 1811 Prime Test 大数素数测试+大数因子分解

    Prime Test Time Limit: 6000MS   Memory Limit: 65536K Total Submissions: 27129   Accepted: 6713 Case ...

  8. Miller-Rabbin随机性素数测试算法

    //**************************************************************** // Miller_Rabin 算法进行素数测试 //速度快,而且 ...

  9. 数学:随机素数测试(Miller_Rabin算法)和求整数素因子(Pollard_rho算法)

    POJ1811 给一个大数,判断是否是素数,如果不是素数,打印出它的最小质因数 随机素数测试(Miller_Rabin算法) 求整数素因子(Pollard_rho算法) 科技题 #include< ...

随机推荐

  1. win10如何100%提升网络速度

    1.Win+R运行,输入gpedit.msc 2.依次打开"计算机配置"-"管理模板"-"网络"-"QoS数据包计划程序" ...

  2. nginx 和 IIS 实现负载均衡

    Nginx的作用和优点,这里不必多说,今天主要是nginx负载均衡实验,把做的步骤记录下来,作为一个学习笔记吧,也可以给大家做下参考. 1.Nginx安装 1.下载地址:http://nginx.or ...

  3. 【转】段错误调试神器 - Core Dump详解

    from:http://www.embeddedlinux.org.cn/html/jishuzixun/201307/08-2594.html 段错误调试神器 - Core Dump详解 来源:互联 ...

  4. Mysql 建立索引

  5. R语言 ETL+统计+可视化

    这篇文章...还是看文章吧 导入QQ群信息,进行ETL,将其规范化 计算哪些QQ发言较多 计算一天中哪些时段发言较多 计算统计内所有天的日发言量 setwd("C:/Users/liyi/D ...

  6. Shell入门教程:Shell函数的返回值

    shell函数返回值一般有3种方式: 1.return语句(默认的返回值) shell函数的返回值可以和其他语言的返回值一样,通过return语句返回. 比如: #!/bin/bash functio ...

  7. ACM-ICPC如何起步

    刚刚绝定投身ACM-ICPC的同学先要过两关. 第一关:程序设计语言 如果学校有开设相关课程,则省去了很多麻烦.如果没有则可以选择<程序设计导引及在线实践>作为教材.现在的比赛中允许使用的 ...

  8. log4cxx

    1.简介 (1)Apache log4cxx当前是由Apache软件基金会进行维护.它是java中著名开源项目Apache log4j在c++中对应的日志框架.它是借助于APR(Apache Port ...

  9. 使用curl进行https请求

    简单示例: /** * @param $url * @return array * 进行https请求,并且遇到location进行跳转 */ function https($url){ $resul ...

  10. Ubuntu配置svn

    http://www.cnblogs.com/arrongao/archive/2013/03/30/linux_svn.html