线性筛 o(n)复杂度打素数表
来源:互联网 发布:linux编辑模式怎么换行 编辑:程序博客网 时间:2024/05/22 03:08
这是打素数表最快的一种方法,叫线性筛,比普通的筛法虽然快不了多少,但是对于那种超大的恐怖数据还是很有用的。
#include <cstring>using namespace std;int prime[MAX], primesize;bool isprime[MAX];void getlist(int listsize){memset(isprime, 1, sizeof(isprime));isprime[1] = false;for (int i = 2; i <= listsize; i++){if (isprime[i])prime[++primesize] = i;for (int j = 1; j <= primesize&&i*prime[j] <= listsize; j++){isprime[i*prime[j]] = false;if (i%prime[j] == 0)break;}}}
函数getlist里面的参数是你要打的素数表的范围,调用该函数后,prime数组里即是该素数表。
阅读全文
0 0
- 线性筛 o(n)复杂度打素数表
- 素数打表,复杂度(Onlogn)和O(n)(对与10^7来说线性快两倍) + 分解质因数
- 线性筛选素数法(O(n)复杂度)
- 筛素数 时间复杂度:O(N)
- 素数线性筛(O(N)!!!)
- 线性筛打素数表
- 判断质数 O(n)复杂度打表
- 线性打素数表
- 小红书上两种素数打表时间对比O(n*log(n)) O(n)
- ACM 求素数 线性筛法 o[n]
- 【筛素数表证明】【O[n]】
- 打印1000内的所有素数,算法复杂度O(n)
- 打素数表高效方法(线性)
- 删除线性表中所有值为x的元素,要求时间复杂度为O(n),空间复杂度为O(1)
- 设计算法将线性表中的元素分为两部分,要求左边都是奇数,右边都是偶数,时间复杂度O(n),空间复杂度O(1)
- hdu 2138 How many prime numbers(打srt(n)素数表加快筛素数法)
- 长度为n的顺序表L,编写一个时间复杂度为O(n),空间复杂度为O(1)的算法,该算法删除线性表中所有值为X的元素
- 求n很大时求,<= n的素数的个数(时间复杂度o(n ^ 2 / 3)模板
- light oj 1234 Harmonic Number
- 第一个博客
- 找到一个超好用的navicat
- 617. Merge Two Binary Trees
- Java中类加载机制与反射
- 线性筛 o(n)复杂度打素数表
- C语言编译 链接
- 对AFN 进行进一步封装,再应用于具体的项目,这样可以将业务逻辑代码与网络框架进行解耦
- js小知识
- 致远行的人,自编TensorFlow教程(1)
- dfs+bfs专题(简单题)
- linux文件系统与物理文件系统
- Codeforces 630J
- ARM裸机部分学习记录