欧拉线性筛法求素数(顺便实现欧拉函数的求值)
标签:欧拉筛法 素数 欧拉函数 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重复筛除,所以也就有了我们下面要提到
欧拉线性筛法求素数(顺便实现欧拉函数的求值)相关推荐
- 求素数(质数)的方法(求100以内的素数及判断该数是否为素数)
"素数,也是质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数." 求素数的方法: (1)从2~x-1测试是否可以整除 (2)去掉偶数之后,从3~x-1,每次加2 ...
- c语言数组求素数,C语言入门:一维数组求素数
/* Note:Your choice is C IDE */ #include "stdio.h" void main() { //素数 //已知有数组int a[10]={1, ...
- 用python函数求素数_Python:用filter函数求素数 (再理解generator)
目的:更熟悉应用generator. 素数定义: 素数:质数又称素数.一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数. 方法: 计算素数的一个方法是埃氏筛法: 首先,列出从2开 ...
- python筛选法求素数讲解_埃氏筛选法求素数 Python
代码如下 def _odd_iter(): # 构建奇数序列 从3开始 n = 1 while True: n = n + 2 yield n def _not_divisible(n): retur ...
- python写函数求两个数最小公倍数_Python自定义函数实现求两个数最大公约数、最小公倍数示例...
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...
- 线性筛法--有测试代码
//线性筛法--有测试代码 /* 数论 - 欧拉筛法(线性筛)的解释 https://blog.csdn.net/Losk_0/article/details/87884390素数筛法详解(欧拉筛&a ...
- Python 算法之 求素数、质数
Python 如何求素数.质数 文章目录 Python 如何求素数.质数 素数.质数(重点) 方法一:枚举 方法二:厄拉多塞筛法[埃氏筛] 方法三:线性筛 相关博客
- Golang 实现求素数【 输入N,求N内素数个数 】
简介 什么是素数? 素数也叫质数,是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数. 判断素数的方法: 思路一:判断一个数是否素数,只需要把m 被 2~m-1之间的每一个整 ...
- mysql编写函数 求1 n 偶数之和,编写求1 2 3 - n的函数.在main函数中调用该函数
输入两个正整数m,n,编写求阶乘的函数,计算m!/(n!*(m-n)!). C语言函数解答,谢谢. #includelongfactorial(intm,intn){longsum=1,sum1=1; ...
最新文章
- 肖仰华:知识图谱落地,不止于“实现”
- CSS学习笔记(二) ----盒子模型
- TCP/IP状态详解
- 在Quick-cocos2dx中使用云风pbc解析Protocol Buffers,支持win、mac、ios、android
- linux上添加下载源的时候报错:无法添加 PPA:“‘此 PPA 不支持 bionic‘”,以及关于linuxPPA的介绍,如何查找软件包的PPA源,并添加PPA
- Exchange 2016异地容灾系列-Exchange部署(五)
- 返乡置业?多数人将掉入陷阱
- 介绍一个可以把东西传到LINUX下的FTP客户端
- 用ACL构建防火墙体系
- Windows 计划任务功能设置闹钟~
- d778: NOIP2009 2.Hankson的趣味题
- php json数组大小,php json转换成数组形式
- 统计学习方法读书笔记2-极大似然估计与梯度下降法
- 本地安装易邮邮箱服务器并用foxmail 连接测试
- 机器学习中的激活函数作用
- python处理页眉_【python-docx 05】操作页眉和页脚
- image caption学习笔记
- java基础中的基础,简单中的简单
- python 拆分excel工作表_Python几行代码轻松拆分表格
- 微信小程序 小星星样式