hdu2138 How many prime numbers (素数测试)
来源:互联网 发布:阿里小号 注册淘宝 编辑:程序博客网 时间:2024/06/08 07:42
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2138
米勒拉宾算法
#include <stdio.h>_int64 pow_mod(_int64 a,_int64 b,_int64 mod){_int64 ans=1;while(b){if(b&1)ans=(ans*a)%mod;a=(a*a)%mod;b>>=1;}return ans;}int MillerBabbin(_int64 n,_int64 a){_int64 t;_int64 d=n-1;if(n==2||n==a)return 1;if((n&1)==0)//n为偶数return 0;while(!(d&1))d>>=1;t=pow_mod(a,d,n);while((d!=n-1)&&(t!=1)&&(t!=n-1)){t=t*t%n;d<<=1;}return ((t==n-1)||(d&1)==1);}int isPrime(_int64 n){int i;_int64 test[5]={2,3,5,7};for(i=0;i<4;++i){if(!MillerBabbin(n,test[i]))return 0;}return 1;}int main(){int n,ans;_int64 x;while(scanf("%d",&n)!=EOF){ans=0;while(n--){scanf("%I64d",&x);if(isPrime(x))ans++;}printf("%d\n",ans);}return 0;}
- hdu2138 How many prime numbers (素数测试)
- hdu2138 How many prime numbers(Miller_Rabbin随机素数测试)
- hdu2138 How many prime numbers
- HDU2138 How many prime numbers
- HDU2138--How many prime numbers
- HDU2138 How many prime numbers【水题】
- HDu 2138 How many prime numbers 高效Miller素数测试
- 判断素数How many prime numbers
- 素数——How many prime numbers
- hdu 2138 How many prime numbers (随即素数测试模版)
- HDU 2138 How many prime numbers(米勒拉宾素数测试算法)
- HDU-2138-How many prime numbers(米勒拉宾素数测试)
- How many prime numbers
- How many prime numbers
- How many prime numbers
- How many prime numbers
- How many prime numbers
- How many prime numbers
- CloudStack 4.1.0 安装详解
- hdu4568 Hunter(bfs+优先队列+旅行商问题)
- python13 参数、变量、拆包
- python性能优化工具及方法
- php经典实例-笔记6-xml
- hdu2138 How many prime numbers (素数测试)
- ssh 和 ajax交互代码
- oracle 11g不能导出空表的解决方法
- 关于Swift的Tempauth和Keystone
- ios多维字典遍历
- 安卓学习之(清理缓存)
- android 滑动菜单SlidingMenu的实现
- va_start_va_end_的使用和原理
- empty与isset区别与联系