#include < iostream >
using namespace std;
const int MAXV = 10000 ; // 素数表范围
bool flag[MAXV + 1 ]; // 标志一个数是否为素数
int prime[MAXV + 1 ]; // 素数表,下标从0开始
int size; // 素数个数
void genPrime( int max)
{
memset(flag, true , sizeof(flag));
for ( int i = 2 ; i <= max / 2 ; i ++ )
{
if (flag[i])
{
for ( int j = i << 1 ; j <= max; j += i)
{
flag[j] = false ;
}
}
}
for ( int i = 2 ; i <= max; i ++ )
{
if (flag[i])
{
prime[size ++ ] = i;
}
}
}
int main()
{
genPrime(MAXV);
return 0 ;
}
筛法求素数
最新推荐文章于 2023-01-09 09:37:10 发布