网上有关“怎样才可以快捷地判断一个数是否是素数? ”话题很是火热,小编也是针对怎样才可以快捷地判断一个数是否是素数?寻找了一些与之相关的一些信息进行分析 ,如果能碰巧解决你现在面临的问题,希望能够帮助到您。
对于素数这个概念,我们自然会想到这样一个问题:怎样从自然数集合中找出素数?素数到底有多少个?
假设给定一个自然数N ,要求出N以内的所有素数,可以这样进行:因为N以内的自然数只有三种,一种是1 ,一种是合数,一种是素数;我们可以象筛东西那样,先把1筛掉,然后再把合数筛掉 ,剩下的就是素数了,这种在自然数列中寻找素数的方法就叫做埃拉托色尼筛法(简称埃氏筛法) 。
用筛法找出不超过N的全部素数,可以遵循下面的定理进行。
辅助定理1:“如果n是不大于x的合数 ,那么n必有一个不大于√x的素约数(符号“√”表示开平方)”(证从略)。根据辅助定理1,我们只要用不大于√x的素数作筛子,就可将不大于X以内的所有的合数筛除掉 。
辅助定理2:“素数有无限多个 ”(证从略)。
虽然素数有无穷多个 ,但在自然数列中的一个相当长的数列中,却找不到一个素数,而有时会出现若p是素数 ,p+2也是素数的情况,所以素数的出现并无规则可言。
一个素数只有1和本身这两个约数,因此素数就不能再分解了 。但是合数却有两个以上的素约数 ,那么合数能不能分解成约数全部是素数的乘积呢?答案是肯定的。
唯一分解定理:“任何大于1的自然数都可以分解成素数的乘积,如果不计较这些素因数的顺序,这种分解方法是唯一的”(证从略)。
根据唯一分解定理,欲求某自然数的倍数之数列 ,只要用该数乘以自然数列,即可得到该数的倍数之数列。由此可知,合数的出现是有规则可言的 。埃氏筛法就是根据合数的出现是有规则可言的基础上 ,逐个地将不大于√x的素数的倍数筛掉。根据辅助定理1,可知,筛掉那些具有不大于√x素约数的合数 ,序列中已无合数的存在,剩下的就是大于√x至x的素数了。
在运用筛法时,就可发现 ,当筛除某数的倍数时,有时会遇到数列中的数已被前一个筛子所筛,这样就会造成计算上的误差 。针对此种情况 ,在数论有一个逐步淘汰原则:
“设有N件事物,其中,N_i件有性质i,N_j件有性质j, ..., N_ij件兼有性质i及j ,...,N_ijk件兼有性质i、j及k,...。则此事物中之既无性质i ,又无性质j,又无性质k,...者之件数为
N-N_i-N_j-N_k-...+N_ij+...-N_ijk-...+...-...。”① 。
根据埃氏筛法和逐步淘汰原则 ,数论创建了求不大于X以内的素数之函数π(x)。所谓的π(x)函数,是指:
π(x)=N-r-1-{r∑i=1}[N/pi]+{∑1≤ii*pj]-...
+(-1)r[N/pi*pj*...*pr]
这是数论中求自然数列中素数的个数问题之唯一的一个根据规律而创建的函数,而所谓的素数定理中的Lix(x)函数仅是由于计算出来的数值有接近于π(x)函数中的数值而被高斯先生提议替代π(x)函数之用。因为在π(x)函数中的取整之步骤 ,使得计算成为十分繁琐之事 。但在Lix(x)函数中,并无所求素数的个数之任何规律,在Lix函数中 ,仅是对数函数的积分,而对数函数只是指数函数的反函数也。
关于“怎样才可以快捷地判断一个数是否是素数? ”这个话题的介绍,今天小编就给大家分享完了,如果对你有所帮助请保持对本站的关注!
本文来自作者[束米娅]投稿,不代表明德号立场,如若转载,请注明出处:https://www.cchmdt.com/cshi/202508-10942.html
评论列表(4条)
我是明德号的签约作者“束米娅”!
希望本篇文章《怎样才可以快捷地判断一个数是否是素数?》能对你有所帮助!
本站[明德号]内容主要涵盖:生活百科,小常识,生活小窍门,知识分享
本文概览:网上有关“怎样才可以快捷地判断一个数是否是素数?”话题很是火热,小编也是针对怎样才可以快捷地判断一个数是否是素数?寻找了一些与之相关的一些信息进行分析,如果能碰巧解决你现在面临...