一般素数判断:
#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;
}