一般来说,我们求素数都会用的两种最基本简单的方法就是埃氏筛法和欧拉筛法了。你真的了解什么是埃氏筛法,什么是欧拉筛法吗?你知道他们两者之间的区别是什么吗?下面,就让我们来给大家详细说说吧。
欧拉筛法
埃氏筛法eratosthenes筛法(sieve of eratosthenes)由于思想非常简单,故只给出实现。
欧拉筛法是一种线性算法,并且同时可以计算出每个数的φφ。
做法:回顾经典的eratosthenes筛法,它可能对同一个质数筛去多次。那么如果用某种方法使得每个合数只被筛去一次就变成是线性的了。不妨规定每个合数只用其最小的一个质因数去筛,这便是欧拉筛法了。
简单证明:这个看似很简单,其实还是要注意一下细节的。搞清了证明其他的问题也就清楚了。证明分两部分。首先证每个合数都会被筛到(正确性),其次证每个合数只会被筛到一次(复杂度)。
每个合数都会被筛到,设有一合数n=pk11...pkmmn=p1k1...pmkm(pipi为质数),则nn一定会在i=pk1−11...pkmmi=p1k1−1...pmkm时被筛去(此时primes[j]=p1primes[j]=p1),因为对于小于p1p1的质数,一定不会被ii整除。每个合数都只会被筛到一次。与上面一样,还是设有一合数n=pk11...pkmmn=p1k1...pmkm(pipi为质数)。倘若存在一个质因子px(x≠1)px(x≠1)也筛去了nn,那么此时i=pk11...pki−1x...pkmmi=p1k1...pxki−1...pmkm。i>pxi>px,此时在内层循环中已经早早地break掉了,因为p1∣ip1∣i。i可能在x=mx=m时发生)。
欧拉筛法
难以理解的地方
i % primes[j] == 0为何不放在前面?你可以去试试……实践出真知。放前面的话,所有的“某个质因子的次数不为1”的合数便会被当成质数。至于为什么,请看证明。实践才是检验真理的唯一标准。
当ii为质数时,内层循环会在最后一个质数(也就是ii自己)终止。当ii为合数时,内层循环会在它的第一个质因数终止。当然加了也没有问题。顺便把φφ算出来?其实这是极简单的。主要基于以下事实:(很容易通过定义推出来,不妨自己试试)
1.n为质数时,phi(n) = n - 1
2.p为质数且p整除n时,phi(n*p) = p* phi(n)
3.p为质数且p不整除n时,phi(n*p) =(p - 1) * phi(n)
由此可见,埃氏筛法和欧拉筛法的区别差距还是蛮大的呢。eratosthenes筛法名字虽然高贵冷艳,但是并不难理解,原理就不多说了,但是它做了许多无用功,一个数会被筛到好几次,最后的时间复杂度是o(nloglogn),不要以为这个复杂度已经很好了,因为有直接o(n)的欧拉筛法存在。欧拉筛法的思想就是不做无用功。
当初李小璐出轨pg one这个大瓜刚被啃完不久,李小璐又一次因出轨上热搜了,这回出轨对象被曝是歌手兼演员的薛之谦。由于李雨桐微博爆料让薛之谦和李小璐不为人知的关系浮出水面,随后贾乃亮发文一个人过的很好,坐实再次被绿的传闻。
麻将自古就是我国的国戏,并且这种游戏的胜负往往和自身的水平关系并不是很大,想要赢一半要靠玄妙难测的运气,因此即使对于初学者而言,麻将游戏也具有无穷的魅力。近年来网络上流行的明星三缺一就是集合了经典麻将的玩法,能够让人们在工作之余随时进行一款热门游戏。对于想要提高游戏胜率的朋友来说,一定要来看看明星三缺一攻略。
很多品牌为了体现品牌实力,都会邀请明星代言产品,品牌实力越强,邀请的代言人就越红,而当红明星对品牌的加成也很大,不仅自带庞大的粉丝数量,也会加深消费者对品牌的印象,所以请代言人,对品牌来说是高回报的,但不是每个品牌都能邀请当红明星做代言人,小企业想要推广产品,请一些有知名度的老牌明星代言,也是很好的选择,很多人问,请容祖儿代言多少钱?
泰国男明星十大帅哥有很多,但是真正让我们记住的却没有几个,因为在我们国家发展的泰国明星还不算多,只是有时候有的泰剧会很火,会有很多人观看,那么就和小编一起看看这些帅哥吧。
每年的时尚发型造型都在改变,明星们都想要拥有一个合适又好看的发型,这样在出镜的时候才有好的表现。那么就一起跟发型侠小编来了解一下女明星短发发型图片分解,有几种好看的发型!
在娱乐圈,有很多的明星都热衷于喝酒,如果找他们代言,相信有很多明星都愿意。而在过去,也确实有很多明星代言过酒类产品,今天王牌明星代言就与你一起盘点一下这些代言酒的明星。