hdu 2012 素数判定 Miller_Rabbin
素数判定
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 71785 Accepted Submission(s): 24969
0 0
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
/*
米勒-拉宾素数判定:
1.求出s和R 使得N-1 = 2^s * R
2.选出[1,N-1]的整数a (最好是质数)
3.检验(a^d) mod N != 1且r从0到(s-1): (a^(2^r*s)) mod N != -1则N是合数
4.如果不是合数有 75%概率是质数
*/
int pow_mod(int x,int y,int mod)
{
int ret=;
while (y)
{
if (y&)ret=ret*x%mod;
x=x*x%mod;
y>>=;
}
return ret;
}
bool Miller_Rabbin(int n,int a)//a属于[2,n-1]
{
if (n<)return false;
if (!(n%a))
return false;
int r=,s=n-;
while (!(s&))
{
s>>=;
r++;
}
//将n-1分解为2^r * s s为奇数
int k=pow_mod(a,s,n);
if (k==)return true;
//如果a^s%n==1 为伪素数
for (int i=;i<r;i++)
{
if (k==n-)return true;
//对于任意 a^(s*2^i)%n==n-1 为伪素数 i属于[1,r-1]
k=k*k%n;
}
return false;
}
int main()
{
freopen("input.txt","r",stdin);
int x,y,n,t;
while (scanf("%d%d",&x,&y),x!=||y!=)
{
int i;
bool flag=true;
for (i=x;i<=y;i++)
{
t=;
while (t--)
{
n=i*i+i+;
if (!Miller_Rabbin(n,rand()%(n-)+))
{
flag=false;
break;
}
}
if (!flag)break;
}
if (flag)
{
printf("OK\n");
}else
{
printf("Sorry\n");
}
}
}
hdu 2012 素数判定 Miller_Rabbin的更多相关文章
- HDU 2012 素数判定
http://acm.hdu.edu.cn/showproblem.php?pid=2012 Problem Description 对于表达式n^2+n+41,当n在(x,y)范围内取整数值时(包括 ...
- HDOJ 2012 素数判定
Problem Description 对于表达式n^2+n+41,当n在(x,y)范围内取整数值时(包括x,y)(-39<=x < y<=50),判定该表达式的值是否都为素数. I ...
- hdu 1012 素数判定
这道题~以前判定prime是一个个去试着整除再去存储,上次弄过欧拉函数那题目之后就知道了,这样会更快捷: prime[] = prime[] = ; ; i <maxn; i++) { if(! ...
- hdu 1397 (素数判定)
一开始提交了这个,果断TLE #include <cstdio> #include <iostream> #include <string> #include &l ...
- HDU 2012 FZU 1756关于素数的一些水题
HDU 2012 素数判定 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) To ...
- 多项式求和,素数判定 HDU2011.2012
HDU 2011:多项式求和 Description 多项式的描述如下: 1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + ... 现在请你求出该多项式的前n项的和. Input ...
- 数学#素数判定Miller_Rabin+大数因数分解Pollard_rho算法 POJ 1811&2429
素数判定Miller_Rabin算法详解: http://blog.csdn.net/maxichu/article/details/45458569 大数因数分解Pollard_rho算法详解: h ...
- Miler-Rabbin素数判定
前言 素数判定? 小学生都可以打的出来! 直接暴力O(n)O(\sqrt n)O(n)-- 然后就会发现,慢死了-- 于是我们想到了筛法,比如前几天说到的詹欧筛法. 但是线性的时间和空间成了硬伤-- ...
- FZU 1649 Prime number or not米勒拉宾大素数判定方法。
C - Prime number or not Time Limit:2000MS Memory Limit:32768KB 64bit IO Format:%I64d & % ...
随机推荐
- Swift开发:NSLayoutConstraint纯代码实现自动布局-初级篇
要求 宽高200的view,通过代码,使得view在距离父控件的右下角20边距处 /* 约束的设置,控件内部约束由自己添加,比如宽高,如果是与其他的 控件约束那么有父控件添加 *创建约束 NSLayo ...
- qt中如果用qDebug输出彩色调试信息
Linux: 在终端输出彩色信息有点类似于html的语法,即在要输出的文字前加上转义字符. 指令格式如下\033[*m 这里的*就是转义字符,例如我们要输出一段绿色的文字 qDebug(" ...
- SVN/GIT源代码泄露
造成SVN源代码漏洞的主要原因是管理员操作不规范.在使用SVN管理本地代码过程中,会自动生成一个名为.svn的隐藏文件夹,其中包含重要的源代码信息.但一些网站管理员在发布代码时,不愿意使用‘导出’功能 ...
- 纯IPv6环境App适配的坑
来源:伯乐在线专栏作者 - MrPeak 链接:http://ios.jobbole.com/86580/ 苹果从2016年6月1号开始,强制所有app必须支持纯IPv6的网络环境.这项举措将对IPv ...
- mac 下 php 安装 中的坑
brew Error: Formulae found in multiple taps http://www.trylife.cn/brew-error-formulae-found-in-multi ...
- JavaScript 应用开发 #3:应用的主视图
目前为止,我们已经在应用里面,创建了表示数据的模型,表示数据列表的集合,组织模型显示的视图与模板.下面, 我们要想办法,去把模型的列表显示在应用的界面上.这样我们就可以再去为应用创建一个主要的视图,用 ...
- Linux Apache SVN
yum install mod_dav_svn subversion httpd mkdir /var/www/svnsvnadmin create /var/www/svn/puppetcd /v ...
- 正则表达式工具类,正则表达式封装,Java正则表达式
正则表达式工具类 正则表达式封装 Java正则表达式 >>>>>>>>>>>>>>>>>>& ...
- Binding 中 Elementname,Source,RelativeSource 三种绑定的方式
在WPF应用的开发过程中Binding是一个非常重要的部分. 在实际开发过程中Binding的不同种写法达到的效果相同但事实是存在很大区别的. 这里将实际中碰到过的问题做下汇总记录和理解. 1. so ...
- JSON 学习总结 <一>:什么是JSON
JSON的相关资料和博客很多,JSON无处不用,最近项目中一直要用到JSON,今天没有加班,就写下,算是对自己的总结,对JSON又一次深入的认识. 废话不多了,直接进入今天的主题: 如题:今天就介绍下 ...