一般素数判断:
#include<iostream> using namespace std; bool isprime(const int &n)//定义判断素数函数 { if(n==1) return false; else if(n==2) return true; else { for (int i=2; i*i<=n; i++) { if(n%i==0) return false; } } return true; } int main(void) { int n,ans; while(cin>>n) { ans=0; for (int i=1; i<=n; i++) { if(isprime(i)) { cout<<i<<" "; } } } return 0; }
筛法求素数:
#include<iostream> using namespace std; int main(void) { int n,i,j,ans; while (cin>>n) { ans=0; bool *list=new bool[n+1]; for (i=1; i<=n; i++) list[i]=true; //数组初始化为true list[1]=false; for (i=2; i<=n; i++) { for (j=2; j*i<=n; j++) { list[j*i]=false; } } //筛法求素数 for (i=1; i<=n; i++) { if(list[i]) { cout<<i<<" "; } } //输出素数 delete []list; } return 0; }