标签:欧拉筛法   素数   欧拉函数   phi

我们先来看一下最经典的埃拉特斯特尼筛法。时间复杂度为O(n loglog n)

int ans[MAXN];
void Prime(int n)
{int cnt=0;memset(prime,1,sizeof(prime));prime[0]=prime[1]=0;for(int i=2;i<n;i++){if(vis[i]){ans[cnt++]=i;//保存素数 for(int j=i*i;j<n;j+=i)//i*i开始进行了稍微的优化prime[j]=0;//不是素数 }}return ;
}

显然,当一个数是素数的时候,那么他的倍数肯定是合数,筛选标记即可。从i*i而不从i*2开始,是因为已经i*3,i*2早已经被2,3筛过了。

由此,我们也可以发现有的合数被重复筛除,例如30,2*15筛了一次,5*6重复筛除,所以也就有了我们下面要提到

欧拉线性筛法求素数(顺便实现欧拉函数的求值)相关推荐

  1. 求素数(质数)的方法(求100以内的素数及判断该数是否为素数)

    "素数,也是质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数." 求素数的方法: (1)从2~x-1测试是否可以整除 (2)去掉偶数之后,从3~x-1,每次加2 ...

  2. c语言数组求素数,C语言入门:一维数组求素数

    /* Note:Your choice is C IDE */ #include "stdio.h" void main() { //素数 //已知有数组int a[10]={1, ...

  3. 用python函数求素数_Python:用filter函数求素数 (再理解generator)

    目的:更熟悉应用generator. 素数定义: 素数:质数又称素数.一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数. 方法: 计算素数的一个方法是埃氏筛法: 首先,列出从2开 ...

  4. python筛选法求素数讲解_埃氏筛选法求素数 Python

    代码如下 def _odd_iter(): # 构建奇数序列 从3开始 n = 1 while True: n = n + 2 yield n def _not_divisible(n): retur ...

  5. python写函数求两个数最小公倍数_Python自定义函数实现求两个数最大公约数、最小公倍数示例...

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  6. 线性筛法--有测试代码

    //线性筛法--有测试代码 /* 数论 - 欧拉筛法(线性筛)的解释 https://blog.csdn.net/Losk_0/article/details/87884390素数筛法详解(欧拉筛&a ...

  7. Python 算法之 求素数、质数

    Python 如何求素数.质数 文章目录 Python 如何求素数.质数 素数.质数(重点) 方法一:枚举 方法二:厄拉多塞筛法[埃氏筛] 方法三:线性筛 相关博客

  8. Golang 实现求素数【 输入N,求N内素数个数 】

    简介 什么是素数?    素数也叫质数,是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数. 判断素数的方法:    思路一:判断一个数是否素数,只需要把m 被 2~m-1之间的每一个整 ...

  9. mysql编写函数 求1 n 偶数之和,编写求1 2 3 - n的函数.在main函数中调用该函数

    输入两个正整数m,n,编写求阶乘的函数,计算m!/(n!*(m-n)!). C语言函数解答,谢谢. #includelongfactorial(intm,intn){longsum=1,sum1=1; ...

最新文章

  1. 肖仰华:知识图谱落地,不止于“实现”
  2. CSS学习笔记(二) ----盒子模型
  3. TCP/IP状态详解
  4. 在Quick-cocos2dx中使用云风pbc解析Protocol Buffers,支持win、mac、ios、android
  5. linux上添加下载源的时候报错:无法添加 PPA:“‘此 PPA 不支持 bionic‘”,以及关于linuxPPA的介绍,如何查找软件包的PPA源,并添加PPA
  6. Exchange 2016异地容灾系列-Exchange部署(五)
  7. 返乡置业?多数人将掉入陷阱
  8. 介绍一个可以把东西传到LINUX下的FTP客户端
  9. 用ACL构建防火墙体系
  10. Windows 计划任务功能设置闹钟~
  11. d778: NOIP2009 2.Hankson的趣味题
  12. php json数组大小,php json转换成数组形式
  13. 统计学习方法读书笔记2-极大似然估计与梯度下降法
  14. 本地安装易邮邮箱服务器并用foxmail 连接测试
  15. 机器学习中的激活函数作用
  16. python处理页眉_【python-docx 05】操作页眉和页脚
  17. image caption学习笔记
  18. java基础中的基础,简单中的简单
  19. python 拆分excel工作表_Python几行代码轻松拆分表格
  20. 微信小程序 小星星样式

热门文章

  1. Java高手是如何练成的
  2. 顺丰新财报:迎来上市来最好Q4业绩,强大修复能力下的新长跑
  3. 平台经济下的商业模式画布
  4. Xlua解析json,你造吗?
  5. 在微信项目的通讯录页面中增加添加联系人功能
  6. 基于STC12C5A的MINI3216多功能点阵时钟
  7. 争当 2% 的人——《智能时代 · 大数据与智能革命重新定义未来》读书笔记
  8. node之inquirer基本用法和常用属性入门
  9. 基于jQuery的富文本编辑器summernote插件的使用教程
  10. 安东尼罗宾--激发你的无限潜能[连载]--17 18章