hdu 2138 How many prime numbers 大规模素数判断
来源:互联网 发布:学办公软件 编辑:程序博客网 时间:2024/06/14 04:14
How many prime numbers
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 0 Accepted Submission(s): 0
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
32 3 4
Sample Output
2
思路: 打表会超时,直接判断 或者 用 miller_rabin算法
code 1:
#include<bits/stdc++.h>using namespace std;int main(){ int n,b,ans,f,i; while(scanf("%d",&n)!=EOF) { ans=0; while(n--) { scanf("%d",&b); f=0; for(i=2; i<=sqrt(b*1.0); i++)// i*i<=b 会超时 if(b%i==0) { f=1; break; } if(!f)ans++; } printf("%d\n",ans); } return 0;}
miller_rabin算法
code 2:
#include<iostream>using namespace std ;__int64 qpow(int a,int b,int r){ __int64 ans=1,buff=a; while(b) { if(b&1) ans=(ans*buff)%r; buff=(buff*buff)%r; b>>=1; } return ans;}bool Miller_Rabbin(int n,int a){ int r=0,s=n-1,j; if(!(n%a)) return false; while(!(s&1)) { s>>=1; r++; } __int64 k=qpow(a,s,n); if(k==1) return true; for(j=0;j<r;j++,k=k*k%n) if(k==n-1) return true; return false;}bool IsPrime(int n){ int tab[5]={2,3,5,7}; for(int i=0;i<4;i++) { if(n==tab[i]) return true; if(!Miller_Rabbin(n,tab[i])) return false; } return true;}int main(){ int n; while(~scanf("%d",&n)) { int ans=0,a; for(int i=0;i<n;i++) { scanf("%d",&a); if(IsPrime(a)) ans++; } printf("%d\n",ans); } return 0;}
code 1:
0 0
- hdu 2138 How many prime numbers 大规模素数判断
- HDU 2138 How many prime numbers【素数判断,卡时间!!】
- 判断素数How many prime numbers
- hdu 2138 How many prime numbers(求素数)
- HDu 2138 How many prime numbers 高效Miller素数测试
- hdu 2138 How many prime numbers(数论:素数判定)
- hdu 2138 How many prime numbers (素数判定)
- hdoj How many prime numbers (素数判断&暴力)
- HDU-2138 How many prime numbers
- hdu 2138 How many prime numbers(miller_rabin?)
- HDU 2138 How many prime numbers
- HDU 2138 How many prime numbers
- hdu 2138 How many prime numbers
- hdu 2138 How many prime numbers
- hdu-2138-How many prime numbers
- hdu-2138- How many prime numbers
- HDU 2138 How many prime numbers
- hdu 2138 How many prime numbers
- 输入框放大镜,真的有必要吗?
- 数组循环移位k>0或者k<0
- FZU 2177-ytaaa-dp-周赛5补题
- android保存文件到手机
- D-- Little Pony and Expected Maximum(CF--453A
- hdu 2138 How many prime numbers 大规模素数判断
- oc图片压缩与Base46编码
- 视频流传输协议RTP/RTCP/RTSP/HTTP的区别
- 原码 反码 补码
- Android常用部分小功能代码
- Centos6.4 yum安装MariaDB5.5.45
- UITextField功能方法详解
- POJ 3678 2-sat,基础题
- 从键盘输入大写字母输出小写字母