/*
筛素数:
思路:
先把N个数按次序排起来。1什么数也不是先划去。第二个数2是素数留下来,然后把后面凡是能
被2整除的数都划去,2相关的处理完后,下面的第一个数是3(3没有被划掉,其是素数)按照处理
2的方法进行处理,这样一直做下去
*/
#include <iostream>
using namespace std;
int SPrime(int *result, int n)
{
int i, j;
int *prime = new int[n];
for (i=2; i<=n; ++i)
prime[i] = 1;
for (i=2; i<=n; ++i)
{
if (prime[i] == 1)
{
for (j=2; j<=n; ++j)
{
prime[i*j] = 0;
}
}
}
for (i=2, j=0; i<=n; ++i)
{
if (prime[i] == 1)
{
result[j++] = i;
}
}
return j-1;
}
int main()
{
int result[10];
int n = SPrime(result, 10);
for (int i=0; i<n; ++i)
cout<<result[i]<<" ";
cout<<endl;
return 0;
}
筛法筛素数
最新推荐文章于 2024-02-14 15:23:06 发布