ACM竞赛数学学习笔记

无人久伴 提交于 2019-12-02 06:48:54

欧拉筛的证明

之前一直都是贴板子。今天花了一点时间看了下证明,原来是如此简洁优雅。欧拉大神orz

一。正确性。 对于任何一个合数C,设p为C的最小质因子,令A=C/p,那么显然有A的最小质因子大于等于p,于是在进行到A枚举已存储的质数时,枚举到A的最小质因子之前p一定被枚举到了,于是C一定被筛出了。这就证明了所有的合数都会被筛出,也就证明了欧拉筛的正确性。

二。时间的线性。 只需要证明任何一个合数都不会被重复筛。 观察欧拉筛的过程发现所有的合数都是以一个质数乘另一个数的形式被筛出的。那么设C=A·p1,p1是C的最小质因子,假设存在另一组数满足C=B·p2,则有p2大于等于p1,而B的质因子必然包含p1,那么当进行到B的时候,在枚举到p1的时候就已经退出循环,于是C不会被重复筛出。即证明了时间复杂度。

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!