赞
踩
#include<iostream> #include<cmath> using namespace std; bool is_prime1(int n) { bool flag=true; if(n==2) return flag; if(n%2==0||n==1) { flag=false; return flag; } for(int i=2;i<n-1;i+=2) { if(n%i==0) flag=false; } return flag; } bool is_prime2(int n) { bool flag=true; if(n==2) return flag; if(n%2==0||n==1) { flag=false; return flag; } double N=static_cast<double>(n); int temp=static_cast<int>(sqrt(N)); for(int i=2;i<=temp;i+=2) { if(n%i==0) flag=false; } return flag; } bool is_prime3(int n) { bool flag=true; if(n==1){flag=false;return flag;} else if(n==2 || n==3) {return flag;} else if(n%6!=1 && n%6!=5){flag=false;return flag;} else { double n_sqrt=sqrt(static_cast<double>(n)); int temp=static_cast<int>(n_sqrt); for(int i=5;i<=temp;i+=6) { if(n%i==0 ||n%(i+2)==0) flag=false; } return flag; } } int main() { int n; cout<<"please input 整数n:"<<endl; cin>>n; int count=0; int*prime=new int[n]; for(int i=1;i<=n;i++) { if(is_prime3(i)) { prime[count++]=i; } } for(int i=0;i<count;i++) cout<<prime[i]<<" "; delete[]prime; return 0; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。