一般素数判断+筛法求素数

一般素数判断:

#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;
}
原文地址:https://www.cnblogs.com/Blackops/p/5356435.html