求素数个数。

  1. /** @Date : 2017-09-18 23:05:15
  2. * @FileName: HDU 2138 miller-rabin 模板.cpp
  3. * @Platform: Windows
  4. * @Author : Lweleth (SoungEarlf@gmail.com)
  5. * @Link : https://github.com/
  6. * @Version : $Id$
  7. */
  8. #include <bits/stdc++.h>
  9. #define LL long long
  10. #define PII pair<int ,int>
  11. #define MP(x, y) make_pair((x),(y))
  12. #define fi first
  13. #define se second
  14. #define PB(x) push_back((x))
  15. #define MMG(x) memset((x), -1,sizeof(x))
  16. #define MMF(x) memset((x),0,sizeof(x))
  17. #define MMI(x) memset((x), INF, sizeof(x))
  18. using namespace std;
  19.  
  20. const int INF = 0x3f3f3f3f;
  21. const int N = 1e5+20;
  22. const double eps = 1e-8;
  23.  
  24. LL fpow(LL a, LL n, LL mod)//快速幂
  25. {
  26. LL res = 1;
  27. while(n)
  28. {
  29. if(n & 1) res = (res * a) % mod;
  30. a = (a * a % mod + mod) % mod;
  31. n >>= 1;
  32. }
  33. return res;
  34. }
  35. bool Miller_Rabbin(int n,int a)//米勒拉宾素数测试
  36. {
  37. int r = 0, s = n - 1;
  38. if(!(n % a))
  39. return false;
  40. while(!(s & 1))
  41. {
  42. s>>=1;
  43. r++;
  44. }
  45. LL k = fpow(a, s, n);
  46. if(k == 1)
  47. return true;
  48. for(int j = 0; j < r; j++, k = k * k % n)
  49. if(k == n-1)
  50. return true;
  51. return false;
  52. }
  53. bool IsPrime(int n)//判断是否是素数
  54. {
  55. int tab[14] = {2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41};
  56. for(int i = 0; i < 13; i++)
  57. {
  58. if(n == tab[i])
  59. return true;
  60. if(!Miller_Rabbin(n, tab[i]))
  61. return false;
  62. }
  63. return true;
  64. }
  65.  
  66. int main()
  67. {
  68. int n;
  69. while(cin >> n)
  70. {
  71. LL x;
  72. LL cnt = 0;
  73. for(int i = 0; i < n; i++)
  74. scanf("%ld", &x), cnt += (IsPrime(x)?1:0);
  75. printf("%lld\n", cnt);
  76. }
  77. return 0;
  78. }

HDU 2138 Miller-Rabin 模板题的更多相关文章

  1. HDU 2222 AC自动机模板题

    题目: http://acm.hdu.edu.cn/showproblem.php?pid=2222 AC自动机模板题 我现在对AC自动机的理解还一般,就贴一下我参考学习的两篇博客的链接: http: ...

  2. HDU 1251 Trie树模板题

    1.HDU 1251 统计难题  Trie树模板题,或者map 2.总结:用C++过了,G++就爆内存.. 题意:查找给定前缀的单词数量. #include<iostream> #incl ...

  3. HDU 3065 (AC自动机模板题)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=3065 题目大意:多个模式串,范围是大写字母.匹配串的字符范围是(0~127).问匹配串中含有哪几种模 ...

  4. HDU 2896 (AC自动机模板题)

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2896 题目大意:多个模式串.多个匹配串.其中串的字符范围是(0~127).问匹配串中含有哪几个模式串 ...

  5. hdu 1711 KMP算法模板题

    题意:给你两个串,问你第二个串是从第一个串的什么位置開始全然匹配的? kmp裸题,复杂度O(n+m). 当一个字符串以0为起始下标时.next[i]能够描写叙述为"不为自身的最大首尾反复子串 ...

  6. HDU 2544 最短路(模板题)

    求1到N的最短路径,模板题,以1为源点,用dijkstra算法(可以用优先级队列优化) #include <iostream> #include <algorithm> #in ...

  7. Number Sequence - HDU 1711(KMP模板题)

    题意:给你一个a串和一个b串,问b串是否是a串的子串,如果是返回b在a中最早出现的位置,否则输出-1   分析:应该是最简单的模板题了吧..... 代码如下: ==================== ...

  8. 【网络流#1】hdu 3549 - 最大流模板题

    因为坑了无数次队友 要开始学习网络流了,先从基础的开始,嗯~ 这道题是最大流的模板题,用来测试模板好啦~ Edmonds_Karp模板 with 前向星 时间复杂度o(V*E^2) #include& ...

  9. HDU 4825 Xor Sum (模板题)【01字典树】

    <题目链接> 题目大意: 给定n个数,进行m次查找,每次查找输出n个数中与给定数异或结果最大的数. 解题分析: 01字典树模板题,01字典树在求解异或问题上十分高效.利用给定数据的二进制数 ...

  10. HDU 5901 Count primes (模板题)

    题意:给求 1 - n 区间内的素数个数,n <= 1e11. 析:模板题. 代码如下: #pragma comment(linker, "/STACK:1024000000,1024 ...

随机推荐

  1. KNN算法之图像处理二

    1.看了诸多博客,初步得到结论是:KNN不适合做图像分类. 2.如果偏要用此方法进行图像分类,距离计算为:对应的每个像素代表的像素值进行绝对差值计算,最后求和.这就是“图像的距离”

  2. multipart/form-data post 方法提交表单,后台获取不到数据

    这个和servlet容器有关系,比如tomcat等. 1.get方式 get方式提交的话,表单项都保存在http header中,格式是 http://localhost:8080/hello.do? ...

  3. 【技术向】rainmeter的设计与发现

    我们在大学期间所学的那点代码知识还远远不够,于是我就自己寻找到了一款简单易懂的软件,来丰富我的代码知识. 这款软件叫rainmeter,中文叫做雨滴,是一款可以修改桌面的软件.它可以将桌面上更改出硬盘 ...

  4. 青岛 2016ICPC 区域现场赛题目

    A. Relic Discovery B. Pocket Cube C. Pocky D. Lucky Coins E. Fibonacci F. Lambda Calculus G. Coding ...

  5. TCP系列51—拥塞控制—14、TLP、ER与拥塞控制

    一.概述 这里的重点是介绍TLP.ER与拥塞控制并不是介绍TLP和ER本身,因此TLP和ER的详细内容请翻前文. 在TLP与拥塞控制的交互中有几个点需要注意 1.TLP触发的重传后,TCP仍然处于Op ...

  6. find . -name file -exec echo abc > {} \; fail

    find . -name file -exec echo abc > {} \; fail 应该改用: find . -name file -exec bash -c 'echo abc > ...

  7. 重写JdbcRDD支持Sql命名参数和分区

    Spark提供的JdbcRDD很不好用,没法指定命名参数,而且必须要提供两个Long类型的参数表示分区的范围,如果数据表没有long类型的字段或者不需要条件,那就不能用JdbcRDD了.这里我简单重写 ...

  8. spring表单—乱码解决方案

    1.POST方式提交 A.jsp页面POST方式提交表单 B.web.xml配置过滤器 <!-- spring过滤器解决乱码问题 --> <filter> <filter ...

  9. Kafka生产者各种启动参数说明

    首先是启动一个生产者 final String kafkazk="localhost:9092"; String topic="testAPI"; Proper ...

  10. python的N个小功能(高斯模糊原理及实践)

    原理: 二维高斯函数 1)         为了计算权重矩阵,需要设定σ的值.假定σ=1.5,则模糊半径为1的权重矩阵如下: 2)         这9个点的权重总和等于0.4787147,如果只计算 ...