HDU2138 How many prime numbers
来源:互联网 发布:看美剧的网站知乎 编辑:程序博客网 时间:2024/05/29 19:53
PS: 素数判定问题。
#include <iostream>#include <cstdio>#include <algorithm>using namespace std;long long pow_mod(long long a, long long i, long long n) { if(i==0) return 1%n; long long tmp = pow_mod(a, i>>1, n); // int tmp. WA. tmp = tmp*tmp%n; if(i&1) tmp = (long long)tmp*a%n; return tmp;}bool test(int n, int a, int d) { if(n==2) return true; if(n==a) return true; if((n&1)==0) return false; while(!(d&1)) d = d>>1; int t = pow_mod(a, d, n); while((d!=n-1) && (t!=1) && (t!=n-1)) { t = (long long)t*t%n; d = d << 1; } return (t==n-1 || (d&1)==1);}bool isPrime(int n) { if(n<2) return false; // int a[] = {2, 3 , 5, 7, 11, 13, 17}; int a[] = {2, 3, 5}; for(int i = 0; i <= 2; i++) { if(!test(n, a[i], n-1)) return false; } return true;}int main(){ int n, t, cnt; while(scanf("%d", &n)!=EOF) { int *p = new int[n+5]; for(int i = 0; i < n; i++) { scanf("%d", &t); p[i] = t; } cnt = 0; for(int i = 0; i < n; i++) { if(isPrime(p[i])) cnt++; } printf("%d\n", cnt); } return 0;}
0 0
- hdu2138 How many prime numbers
- HDU2138 How many prime numbers
- HDU2138--How many prime numbers
- hdu2138 How many prime numbers (素数测试)
- HDU2138 How many prime numbers【水题】
- hdu2138 How many prime numbers(Miller_Rabbin随机素数测试)
- How many prime numbers
- How many prime numbers
- How many prime numbers
- How many prime numbers
- How many prime numbers
- How many prime numbers
- hdu How many prime numbers
- How many prime numbers 2138
- HDU How many prime numbers
- 2138 How many prime numbers
- HDU How many prime numbers
- 十八、How many prime numbers
- 保存python profile的screen输出到file
- Ejb in action(二)——实例入门
- C语言中:while与for循环的区别
- Linux与Windows线程机制简单比较
- Protocol Developer Guide
- HDU2138 How many prime numbers
- 柔情似水,佳期如梦
- Storyboard全解析(一)
- fzu1977之插头DP
- mmap和munmap函数
- IBM联合CSDN发布Power Linux开发测试云平台
- 字符串排序的问题
- Android提高第二十一篇之MediaPlayer播放网络视频
- 语音信号LPC谱估计