线性筛

线性筛

一、原理分析

       用筛法求素数的基本思想是:

二、C语言代码

       标记0-100以内的素数

//线性筛 N = M * P
#include <stdio.h>
#define MAX_N 100

int prime[MAX_N + 5];
void init(){
    //第一层循环枚举M
    for(int i = 2; i <= MAX_N; i++){
        if(!prime[i]) prime[++prime[0]] = i;
        for(int j = 1; j <= prime[0]; j++){
            if(prime[j] * i > MAX_N) break;
            prime[prime[j] * i] = 1;
            if(i % prime[j] == 0) break;
        }
    }
    return ;
}


int main(){
    init();
    for(int i = 1; i <= prime[0]; ++i){
        printf("%d\n", prime[i]);
    }


    return 0;
}

CSDN博客讲解


   转载规则


《线性筛》 赵小亮 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
Go-Study-day1 Go-Study-day1
Go-Study-day1 一、原理分析       Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。
2022-12-26
下一篇 
素数筛 素数筛
素数筛 一、原理分析       用筛法求素数的基本思想是:把从1开始的、某一范围内的正整数从小到大顺序排列,1不是素数,首先把它筛掉。剩下的数中选择最小的数是素数,然后去掉它的倍数。依次类推,直到
2020-10-09
  目录