昨天有个SB给我讲了一个线性筛选素数法O(n)的复杂度,感觉很神奇,自己看了看,

确实牛b的样子。其实它不像一般的筛选素数法会重复操作标记非素数,此方法不会重复

之行操作,遍历只需一次就行。

void get_prime()
{int num = 0 ;memset(vis,false,sizeof(vis));for(int i = 2 ; i < n ; i ++){if(!vis[i]) prime[num++] = i ;for(int j = 0; j<num && i*prime[j]<n ; j ++){vis[i*prime[j]] = true ;if(i % prime[j] == 0) break ;}}
}
/*可以用均摊分析的方法来分析算法的复杂度,由于每
个合数都唯一的被它的最小素因子筛一次,而每个合
数的最小素因子都是唯一的,总复杂度是O(n)*/

一般 筛选素数法:

void get_prime()
{int num = 0 ;memset(vis,false,sizeof(vis));for(int i = 2 ; i < n ; i ++){if(!vis[i]) {prime[num++] = i ;for(int j = 2*i ; j < n ; j += i){vis[j] = true ;}}}
}

线性筛选素数法(O(n)复杂度)相关推荐

  1. 素数与线性筛选法初级版

    今天我们来学习一些关于素数和线性筛选法的知识,这类问题在ACM-ICPC中常常遇到,所以很有必要学好它. 首先,来看素数筛选的一个题. 题目:http://codeforces.com/problem ...

  2. 多元线性回归分析预测法概述

    在市场的经济活动中,经常会遇到某一市场现象的发展和变化取决于几个影响因素的情况,也就是一个因变量和几个自变量有依存关系的情况.而且有时几个影响因素主次难以区分,或者有的因素虽属次要,但也不能略去其作用 ...

  3. 改进的筛素数法 2014-11-29 16:16 29人阅读 评论(0) 收藏...

    最简单的筛素数法方法就是从2开始,将所以2的倍数去掉,然后从3开始,将3的倍数去掉.根据这样很容易写出代码,下面代码就是是筛素数法得到100以内的素数并保存到primes[]数组中. [cpp] vi ...

  4. 快速判断素数,六素数法

    最近翻百科的时候突然看到一个很不错素数筛选方法,叫六素数法,于是写了一下代码记录了下来.这是一种快速的判断一个数为素数的方法. 首先解释一下什么叫六素数.六素数的英文为 "sexy prim ...

  5. [SDOI2008]沙拉公主的困惑 线性筛 素数+欧拉

    本文为博主原创文章,欢迎转载,请注明出处 www.cnblogs.com/yangyaojia [SDOI2008]沙拉公主的困惑 线性筛 素数+欧拉 题目大意 给定n,m,求在1到n!内与m!互质的 ...

  6. 普及组模板——线性筛素数

    题目:[模板]线性筛素数(洛谷_3383) #include<iostream> #include<cstdio> #include<algorithm> #inc ...

  7. P3383 【模板】线性筛素数

    https://www.luogu.com.cn/problem/P3383 //线性筛法 /* P3383 [模板]线性筛素数 https://www.luogu.com.cn/problem/P3 ...

  8. 堆排序:体会线性建堆法的威力

    堆排序:体会线性建堆法的威力 假设现在有一个水平面,上面有 8 只蚂蚁排成一排,我把这张示意图放在了文稿中.方便起见,我们给所有的蚂蚁从左到右依次编号,编号为 1 到 8.从 0 秒开始,红色蚂蚁向左 ...

  9. 线性筛素数的实现与证明

    情境 大家应该都知道用nlogn的时间复杂度筛出[1,n]的所有素数,但是当n的范围较大时,这个方法就不奏效了 今天我们谈谈素数的线性筛法,也就是用On的时间复杂度筛出[1,n]的所有素数 解析 nl ...

最新文章

  1. Java String.split()用法小结
  2. 有了这个工具,不执行代码就可以找PyTorch模型错误
  3. linux内核中的GPIO系统之(4):pinctrl驱动的理解和总结
  4. c51语言if语句多条件使用,单片机if语句判断多个条件
  5. java 生成折线图_jfree jsp java 生成折线图(详解带jar)
  6. zabbix server 迁移步骤
  7. java readLine()
  8. dante pam mysql_FreeBSD下安装dante(sockd)并使用pam-pwdfile进行认证
  9. java cookie id,我如何在Java中获取会话ID
  10. lombok标签_微服务之:springboot入门、Swagger、Lombok使用
  11. 电气专业学校排名全国计算机专业学校排名,电气工程及其自动化专业学校排名...
  12. office 办公软件使用笔记
  13. java 模块层次结构图_Spring框架模块结构图解析
  14. argmin函数解析
  15. 2020年11月软考网络规划设计师上午真题及答案解析
  16. 11. 符号和符号解析
  17. 青柠开车Spring Cloud(七) —— 断路器 Hystrix
  18. 博实乐公布季度业绩,前三季度收入增长46.6%
  19. golang前后端分离框架
  20. 蓝桥杯嵌入式 - 第九届决赛试题(电子秤)

热门文章

  1. python-序列、集合及字典
  2. 【Maven实战】之生成项目站点
  3. openfire在windows环境和linux环境下的配置
  4. 活久见的重构 - iOS 10 UserNotifications 框架解析
  5. Maven pom.xml配置详解(三)
  6. [Java入门笔记] 面向对象三大特征之:封装
  7. 全球增长最快域名解析商Top10:DNSPod新网上榜
  8. Java Hibernate 二级缓存配置及缓存的统计策略
  9. ccna____总结
  10. 迅雷(XUNLEI)的工作原理揭密(续)---为何遭封杀及如何应对?