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;
}

猜你喜欢

转载自blog.csdn.net/u012345982/article/details/83142695