素数算法的不同等级
来源:互联网 发布:学编程能做什么工作 编辑:程序博客网 时间:2024/05/20 18:54
题目:求小于等于自然数N(N>=2)内的所有素数。
等级一:
N=10000,运行时间是21 ms
等级二:
优化:所有偶数中,只有2是素数
N=10000,运行时间是10 ms
等级三:
优化:公约数都是成对出现的,所以只要小于sqrt(i)里没有整除的数即可。
N=10000,结果是:1229 运行时间是0.33 ms
等级四:
优化:只需要确保不能整除小于sqrt(i)的所有素数即可。
N=10000,结果是:1229 运行时间是0.28 ms (这里应该在vector的管理上花费了不少时间)
N=100000000,结果是:5761455 运行时间是25.7 s
等级五:
优化:用内存标记存储素数.
N=100000000,结果是:5761455 运行时间是2458 ms
等级六:
优化:从小到大,每找到一个新的素数s,只需将s*h(s*h<N)的标记置为1即可。(h为大于等于s的所有标记尚且为0的数)
N=100000000,结果是:5761455 运行时间是1172ms
ps:
1.有人说上面的BYTE用了8个bit来表示是否是质数,很浪费内存。用bit位就可以了。确实如些。不过对位的操作会让程序慢很多(经测试大约3倍耗时),有利有弊吧。
2.此文章是几年前我写在另一个帐号上的,现在转过来放这里吧。耗时用现在电脑跑比以前快许多,仅参考。
阅读全文
0 0
- 素数算法的不同等级
- 素数算法的不同等级
- 不同等级的标签对比
- 不同等级标签的对比
- 不同等级的debug信息打印
- Log4j不同等级输入不同文件的配置
- [转]Log4j不同等级输入不同文件的配置
- 算法训练 成绩的等级输出
- 算法训练 成绩的等级输出
- QQ等级图标对应的算法
- 算法训练 成绩的等级输出
- 不同css等级的人对css的看法
- 不同事务隔离等级下的MVCC实现
- C语言多线程下不同等级日志的实现
- 产生素数的算法
- 判断素数的算法
- 强大的素数算法
- 判断素数的算法
- theano T.dot 实例 (是tf.matmul而不是点乘)
- (BFS)Knight Moves--HDOJ
- scp远程拷贝文件出现permission denied,please try again的解决办法
- Func<int, int, string>返回string
- day22(SequenceInputStream,ByteArrayOutputStream,ObjectOutputStream)
- 素数算法的不同等级
- FAAC注意事项
- Enumerable.Range(int:start,int:end)
- [LeetCode] 556. Next Greater Element III
- powderdesinger 16.5破解
- unix时间戳转换问题
- C/C++进程内存的分布
- linux系统资源监控命令
- CentOS7.2安装MySQL