只是一些比较简单的算法实现,记录下来以便以后查看
埃拉托色尼筛算法
初始化2-n的连续整数序列,然后从2到√n的循环中,消去其倍数,如第一次循环中,消去4和6这样的数字。
#include<iostream>
using namespace std;
void f()
{
int n;
do
{
cin>>n;
}while(n<2);
int *A = new int[n-1];
for(int i=0;i<n-1;i++)
A[i] = i+2;
int p;
int temp = sqrt(double(n));
for(p=2;p<=temp;p++)
{
if(A[p-2]!=0)
{
int j = p*p;
while(j<=n)
{
A[j-2] = 0;
j += p;
}
}
}
for(int i=0;i<n-1;i++)
{
if(A[i]!=0)
cout<<A[i]<<" ";
}
delete[] A;
}
int main()
{
f();
system("pause");
}
感谢阅读~