(2)读取队列中当前最小的数2,然后把2的倍数删去
(3)读取队列中当前最小的数3,然后把3的倍数删去
(4)读取队列中当前最小的数5,然后把5的倍数删去
(5)如上所述直到需求的范围内所有的数均删除或读取
实例:
实例:
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int n = 50;
int A[n], L[n];
for(int i=2; i< n; ++i)
A[i] = i;
for(int i=2; i< sqrt(n); ++i)
{
if(A[i] != 0)
{
int j = i*i;
while(j < n)
{
A[j] = 0;
j += i;
}
}
}
int p = 0;
for(int i = 2; i< n; ++i)
{
if(A[i] != 0)
{
L[p++] = A[i];
}
}
for(int i=0; i<p; ++i)
cout << L[i] << " ";
cout << endl;
return 0;
}