有时候我们会遇到需要判断或者统计质数或合数的个数的情况,本文介绍用函数的方法来判断或者统计质数或者合数的个数。
前期准备工作(包括相关工具或所使用的原料等)
Excel详细的操作方法或具体步骤
根据百度百科的解释,如下图所示
质数(prime number)又称素数,有无限个。一个大于1的自然数,除了1和它本身外,不能被其他自然数(质数)整除,换句话说就是该数除了1和它本身以外不再有其他的因数;否则称为合数。
根据算术基本定理,每一个比1大的整数,要么本身是一个质数,要么可以写成一系列质数的乘积;而且如果不考虑这些质数在乘积中的顺序,那么写出来的形式是唯一的。最小的质数是2。

如下图所示,假如A1单元格是任意一个自然数,根据定义可以通过以下数组公式来判断它是否是质数。
=IF(A1>1,IF(SUM(1*(MOD(A1,ROW(INDIRECT("1:"&A1)))=0))=2,"质数","合数"),"既不是质数也不是合数")

公式解释,首先根据定义质数必须是大于1,所以先判断A1>1,然后根据定义
一个大于1的自然数,除了1和它本身外,不能被其他自然数(质数)整除,也就是一个数除以介于1和本身之间的数都不能整除,所以用公式
SUM(1*(MOD(A1,ROW(INDIRECT("1:"&A1)))=0))=2 进行判断是否可以整除的就只有1和本身。其中
ROW(INDIRECT("1:"&A1))是指1和本身之间的所有的自然数。如下图所示

以上的方法是用1和数字本身之间的所有的自然数去相除来判断是否是质数的方法,这个方法对于小数字是没有问题的,如果是一个比较大的数字则公式会出问题。比如在2003版本中最大的行数是65536,假如要判断大于65536的个数是否为质数,用以上的方法就会出错了。
如下图所示

如果要判断一个较大的数是否是质数,还可以利用质数的一个定理
在一般领域,对正整数n,如果用2到根号n之间的所有整数去除,均无法整除,则n为质数。
如下图所示

根据以上的定理,可以将公式改为
=IF(A1>1,IF(SUM(1*(MOD(A1,ROW(INDIRECT("1:"&INT(SQRT(A1)))))=0))=2,"质数","合数"),"既不是质数也不是合数")
用INT(SQRT(A1))代替A1减少整除的数目,来将待判断的数字增大。

基于上述的步骤解释,相信大家一定对如何判断质数、合数有了一个深入的了解。
注意事项
如果这篇文章对您有所帮助,请为这篇文章投票,谢谢。如果有什么疑问,请留言,谢谢。经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。作者声明:本教程系本人依照真实经历原创,未经许可,谢绝转载。- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
