欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-03-15 17:24:00
...

一般素数判断:

 

#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;
}