1. 程式人生 > >素數篩法篩選1~N之間的素數(高效)

素數篩法篩選1~N之間的素數(高效)

#include 

using namespace std;

#define Max 1024
int main()
{
    int n;
    int arr[Max];
    while(~scanf("%d",&n))
    {
        for(int i = 1; i <= n ; i++)
            arr[i] = i;
        for(int i = 2; i <= n ; i++)
        {
            for(int j = i+1; j <= n ; j++)
            {
                if(arr[i] != 0 && arr[j] != 0)
                    if(arr[j] % arr[i] == 0)
                        arr[j] = 0;
            }
        }
        for(int i = 2; i <= n; i++)
            if(arr[i] != 0 )
                printf("%d\n",arr[i]);

    }
    return 0;
}