1. 程式人生 > >C-素數-線性篩

C-素數-線性篩

#include <stdio.h>
#include <math.h>
int main()
{
    int i, j, k;
    int a [300];
    int p [300] = {0};//定義陣列標識
    int b = 0;
    int cnt = 0;
    for (i = 2; i <= 200; i++){
        if(p[i] == 0){//將所有的數都看為素數
                if(i >= 100)
                {
                    cnt++;//計數
                }
            a[b++] = i;//將素數存進陣列
            for(j = i; j <= 200; j = j + i)//素數的倍數都不是素數
                {
                p[j] = 1;// 識別符號為1
            }
        }
    }

    printf("%d\n",cnt);
    for(k = 0; k < b; k++)//輸出
        {
        if(a[k] >= 100){
            printf("%d\t",a[k]);
        }
    }


    return 0;
}