这个素数筛有人提出吗?没有我就提出了
  • 板块学术版
  • 楼主TJ_WY
  • 当前回复14
  • 已保存回复14
  • 发布时间2023/12/22 22:02
  • 上次更新2023/12/23 09:19:40
查看原帖
这个素数筛有人提出吗?没有我就提出了
1162195
TJ_WY楼主2023/12/22 22:02

感觉我要成为 埃 和 欧拉 一样的人了

今天在做素数筛的时候发现了一个特别的筛法 不太像欧拉筛和埃氏筛以及暴力筛

算法思路大致是这样的:

首先开一个数组szsz在里面保存22,22是第一个素数

int sz[114514]={2};

然后开始逐个判断这是不是质数

在拿到数字nn的时候让nn尝试整除sz[i]sz[i]

for(int i=0;i<=114514;i++)
     if(n%sz[i]!=0&&sz[i+1]==0){
       	sz[i+1]=n;//都整除完了是质数了当然存起来
     if(n%sz[i]==0){
  break;

等到整个数组的质数都被整除完了证明其是质数,存起来

这明显不同于埃筛与欧拉筛

形象化算法

这里演示8以内

1 
2 
3 3%2!=0,sz={2,3};
4 4%2==0;
5 5%2!=0,5%3!=0,zs={2,3,5};
6 6%2==0;
7 7%2!=0,7%3!=0,7%4!=0;
8 8%2==0;

就是这样

末尾

这个算法有被人提出吗?如果没有,那我现在就给它想个名字并且申请专利.

2023/12/22 22:02
加载中...