素数
来源:互联网 发布:南风知我意 书包网 编辑:程序博客网 时间:2024/06/05 05:43
看了一下午也没有太大收获,先把自己觉得稍微明白了点的记录下。
查找1~N的比较好的算法就是筛选法,筛选法中比较好的处理方式如下:
1. 采用位图数据结构进行存储
位图.数据结构在STL中有,名字好像是叫bitstamp;将所有位都初始化为true
2. 存储数据的内容
A. 只存储奇数(2*i+3,i是位图中的位置,从0开始)
设bitstamp[i]=s ,如果s是素数,那么将bitstamp[s*t+i]设置为false(其中t是正整数)
下面是数学分析,纠结:
如果第i位的数字s为素数,那么间隔s位处的数字肯定不是素数,是s的倍数,其下标应该是i+t*s
这种筛选会出现重复筛选,可以优化,没学会
B 存储所有数据
s是素数,则下一个起点是s*s,把后面的所有的s*s+2*i*s筛掉
前面小于s*s 的,且是s的倍数,应该会被s前面的素数筛选掉,所以只要从s*s始判断就可以了,2*i*s是跳过为偶数的数字
查找1~N的比较好的算法就是筛选法,筛选法中比较好的处理方式如下:
1. 采用位图数据结构进行存储
位图.数据结构在STL中有,名字好像是叫bitstamp;将所有位都初始化为true
2. 存储数据的内容
这种筛选会出现重复筛选,可以优化,没学会
B 存储所有数据
前面小于s*s 的,且是s的倍数,应该会被s前面的素数筛选掉,所以只要从s*s始判断就可以了,2*i*s是跳过为偶数的数字
0 0
- 素数
- 素数
- 素数
- 素数
- 素数
- 素数
- 素数
- 素数
- 素数
- 素数
- 素数
- 素数
- 素数
- 素数
- 素数
- 素数
- 素数
- 素数
- 简单卷、跨区卷、带区卷、镜像卷和…
- 正则表达式
- RSS技巧
- keytool 不是内部或外部命令
- Python shutil.copy 函数
- 素数
- Ubuntu sun jdk
- Leetcode Binary Tree&n…
- LeetCode:Compare Version Numbers
- Windows Atom 使用
- 过去的2014
- 命名规则
- python 记录
- 日志级别