线性筛法
来源:互联网 发布:做网络推广的心得 编辑:程序博客网 时间:2024/06/18 13:27
第二种:线性筛。
时间复杂度为O(n),原因在于每个合数保证只被它最小的那个质因子筛选。关键代码在第10,11行,因为如果i能整出prime[j],那么i肯定是个合数,且i中有质因子肯定小于等于prime[j],所以到此就可以停止了,因为后面的prime[]会比i小的那个质因子要大。
代码:
void Prime(){ memset(tag,0,sizeof(tag)); int cnt=0; tag[0]=tag[1]=1; for(int i = 2; i<N; i++){ if(!tag[i]) prime[cnt++]=i; for(int j=0;j<cnt && prime[j]*i<N; j++){ tag[i*prime[j]] = 1; if(i % prime[j]==0) break; } } }
阅读全文
0 0
- 线性筛法
- 线性筛法
- 线性素数筛法
- 线性筛法
- 各种线性筛法
- 线性筛素数法
- 线性筛法
- 浅析线性筛法
- 线性筛法
- 线性筛法
- 线性筛法
- 求素数: 一般线性筛法 + 快速线性筛法
- 线性筛法 与 线性求欧拉函数 的计算模板
- 线性筛法的应用
- 几种线性筛法
- 线性筛法(欧拉筛法)
- 【线性筛法的应用】
- 线性筛法及扩展
- C语言第二课
- 深度学习 发展 优缺点 面试二
- 随机产生验证码 简洁代码块
- 三个问题
- 05 flume--Azkaban--sqoop
- 线性筛法
- Python学习中常见的错误有哪些?
- [Machine Learning] [Octave]Gradient Descent Practice
- Web系统测试总结
- tensorflow CNN实际例子
- 666. Path Sum IV
- vue-router的使用及实现原理
- Freemarker整合SpringMVC与JSP配置详解
- ArrayList源码分析