原创滴博客~https://www.cnblogs.com/precious-ZPF/p/9481599.html

小编赶紧摘过来的,多看几遍向银家多学习学习QAQ

首先,在了解米勒-拉宾素性测试之前,我们要先了解费马小定理。

关于费马小定理就不再细说原理和证明了,应用非常广泛。

费马小定理中说  若p是质数  则有 a的(p-1)次方在(mod p)的情况下 恒等于1   数学表达式--->  a^(p-1) ≡ 1 (mod p)

然后我们要注意: p若是质数  则满足费马小定理  但是  满足费马小定理  并不能证明p就是质数

有些数字 满足费马小定理,但是并不是质数  他们叫做伪质数(伪素数的个数是无穷的)

那么 知道了这些  算法就很好理解了

一个数 如果满足费马小定理 那么他很大几率就是素数了  但是还有可能不是

米勒-拉宾素性测试就是  令费马小定理中的a  分别等于多个数  然后拿每一个a去测试 n  若所有的测试 都满足费马小定理  那么n就是素数

通过快速幂 我们可以很快的检测是否满足费马小定理

在一定范围内 伪素数是有限的  只要选区恰当的a的值  呢们就可以保证这是一个确定性的算法  下面详细给出a的选择

if n < 1 373 653   a = 2 and 3.

if n < 9 080 191   a = 31 and 73.

  if n < 4 759 123 141   a = 2, 7, and 61.  和longint是一个数量级

  if n < 2 152 302 898 747      a = 2, 3, 5, 7, and 11.

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2138

How many prime numbers

Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 22662    Accepted Submission(s): 7649

Problem Description

Give you a lot of positive integers, just to find out how many prime numbers there are.

Input

There are a lot of cases. In each case, there is an integer N representing the number of integers to find. Each integer won’t exceed 32-bit signed integer, and each of them won’t be less than 2.

Output

For each case, print the number of prime numbers you have found out.

Sample Input

3 2 3 4

Sample Output

2

Author

wangye

Source

HDU 2007-11 Programming Contest_WarmUp

#include<stdio.h>
#include<iostream>
#include<algorithm>
using namespace std;
typedef long long ll;
ll mod;
ll mul(ll a,ll b){//高精度a%=mod;b%=mod;ll c=(long double)a*b/mod;ll ans=a*b-c*mod;return (ans%mod+mod)%mod;
}
ll pow_mod(ll x,ll n){//快速幂ll res=1;while(n){if(n&1)res=mul(res,x);x=mul(x,x);n>>=1;}return res;
}
bool Miller_Rabbin(ll x){if(x==2||x==7||x==61)return true;//要把所测试用的a先排除if(x%2==0)return false;mod=x;if(pow_mod(2,x-1)==1&&pow_mod(7,x-1)==1&&pow_mod(61,x-1)==1){return true;}return false;
}
ll n,x;
int main(){while(~scanf("%lld",&n)){int cnt=0;for(int i=0;i<n;i++){scanf("%lld",&x);if(Miller_Rabbin(x)) cnt++;}printf("%d\n",cnt);}return 0;
}

米勒-拉宾(MillerRabbin)素性测试算法相关推荐

  1. 费马素性测试和米勒—拉宾素性测试

    chapter 1 Fermat's little theorem 费马小定理 费马小定理说的是:如果p是一个素数,那么对于任意一个整数a,a p − a 能被p整除,也可以用模运算表示如下: (p是 ...

  2. 【学习笔记】Miller-Rabin(米勒-拉宾)素性测试,附常用表

    @TOC 素性测试是检验一个给定的整数是否为素数的测试. 最简单的就是用 n\sqrt{n}n​ 以内的数去试除.这是确定性的算法,即能准确知道 nnn 是否为质数. 但今天学习的是一种随机算法. F ...

  3. 米勒-拉宾素性检测算法

    米勒-拉宾素性检测就是目前应用比较广的一种随机化素性检测算法. 它是基于下面两个定理: (费马小定理)如果 p 为素数,且 a 无法被 p 整除,则对于所有大于0小于 p 的整数 a,有 ap−1≡1 ...

  4. C++实现伪大素数生成算法(费马小定理判别法、米勒拉宾素数判定法)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一.伪大素数生成原理 方法一 方法二 数学基础 二.费马小定理判别法 1.算法 2.代码实现 3.运行结果 二.米勒拉宾素数 ...

  5. 你知道如何判定一个大整数为素数吗?——米勒拉宾素数判定算法

    米勒拉宾算法的基本概念如下: 首先判断这个数n的奇偶性 若为偶数仅有2是质数 奇数则进入测试 测试方法: 首先确定几个基底a,范围在[2,n-1] 因为n是奇数,所以n-1必定为偶数 则n-1可以表示 ...

  6. C++米勒拉宾算法模板

    //我也忘了从哪找来的板子,不过对于2^63级的数据请考虑使用java内置的米勒拉宾算法. 1 #include <iostream> 2 #include <string> ...

  7. 2018宁夏网络赛 B Goldbach (米勒拉宾素数测试)

    2018宁夏网络赛 B Goldbach (米勒拉宾素数测试) 题目链接 题目大意: 给你一个偶数n (2<n<=1e18) 让你把n分解成两个素数的和.(如果有多个输出任意一个) 解题思 ...

  8. 数论 判断素数:普通素数判别 线性筛 二次筛法求素数 米勒拉宾素数检验

    普通的素数判断法 当我们要判断一个数字是否是素数的时候,往往会直接看这个数字模1到这个数字的根号,看有没有等于零的,从而判断这个数字是不是素数,这样做的时间复杂度为O(sqrt(n)) bool is ...

  9. HDU6608 Fansblog【Miller_Rabin素性测试算法+威尔逊定理】

    Fansblog Time Limit: 2000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total Subm ...

最新文章

  1. Android动态修改选中和不选中的Button图片颜色
  2. php一点通,编程一点通app-编程一点通官方版下载v1.0.1-七度网
  3. 开始使用Bootstrap
  4. java中class.forname连接mysql数据库_数据库链接与 Class.forName()用法详解
  5. 头条终面:写个消息中间件
  6. VC++ WIN32 sdk实现按钮自绘详解.
  7. FCKeditor集锦
  8. GPS坐标单位(度分秒)的换算方法
  9. 基本概念学习(8006)--南桥芯片
  10. Java的静态数组和动态数组
  11. Error处理: android.media.MediaRecorder.start(Native Method) 报错:start failed: -19
  12. CV控制输出的图片大小
  13. 转行学IT,能找到好工作吗?
  14. 恭喜宿主获得鸿蒙,我在混沌开学院
  15. 【Ogre编程入门与进阶】第九章 动画
  16. 5G MEC场景下移动终端IP地址固定方法研究
  17. 用 CaptureScreenshot捕捉游戏画面(截图,截屏)
  18. 磁盘检测命令:chkdsk 修复U盘、SFC命令
  19. 强制OOALV运行数据修改事件
  20. mysql跨服务器触发器

热门文章

  1. ARM Cortex-M处理器详解
  2. 科技爱好者周刊(第 114 期):U 盘化生存和 Uber-job
  3. 小白的编程经验(二维数组推箱子游戏)
  4. 奇虎360:5年前赴美上市到今私有化退市,未来路在何方?
  5. Glib之GObject简介(翻译)
  6. QPainter、QPen、QBrush,绘图、填充、渐变等使用方法
  7. aps生产排程解决家具用品业的难题
  8. svm公式推导及理解
  9. 斐讯dns服务器未响应,斐讯k2无线网络初始密码是?
  10. vs上C/C++并行计算#pragma omp