excel公式技巧判断素数方法
发布时间:2023-03-25 11:27:31
在列A中给定一个整数值,例如单元格A2,并且2 <= A2 <= 100,要在列B中(例如单元格B2)使用公式进行判断:如果列A中的值是素数,则返回“素数”;否则,返回该数的素数乘法分解式(其中小写的“x”表示乘法),如下图1所示。
图1
素数也称质数,是指在大于1的自然数中,除了1和它本身外不再有其他因数的自然数。
先不看答案,自已动手试一试。
公式
公式1:
=IF(–(SUMPRODUCT(–(FLOOR(A2,ROW(INDIRECT(“$1:”&INT(SQRT(A2)))))=A2))=1),”素数”,SUBSTITUTE(TRIM(Arry1&””&Arry2&” “&Arry3&””&Arry4&” “&Arry5&””&Arry6),” “,”x”))
其中定义了5个名称,分别为:
名称:Arry1
引用位置:=1+MATCH(1,–(MOD($A2,ROW(INDIRECT(“2:”&$A2-1)))=0),)
名称:Arry2
引用位置:=IFERROR(1+MATCH(1,–(MOD(Sheet1!$A2/Arry1,ROW(INDIRECT(“2:”&Sheet1!$A2-1)))=0),),””)
名称:Arry3
引用位置:=IFERROR(1+MATCH(1,–(MOD(Sheet1!$A2/Arry1/Arry2,ROW(INDIRECT(“2:”&Sheet1!$A2-1)))=0),),””)
名称:Arry4
引用位置:=IFERROR(1+MATCH(1,–(MOD(Sheet1!$A2/Arry1/Arry2/Arry3,ROW(INDIRECT(“2:”&Sheet1!$A2-1)))=0),),””)
名称:Arry5
引用位置:=IFERROR(1+MATCH(1,–(MOD(Sheet1!$A2/Arry1/Arry2/Arry3/Arry4,ROW(INDIRECT(“2:”&Sheet1!$A2-1)))=0),),””)
名称:Arry6
引用位置:=IFERROR(1+MATCH(1,–(MOD(Sheet1!$A2/Arry1/Arry2/Arry3/Arry4/Arry5,ROW(INDIRECT(“2:”&Sheet1!$A2-1)))=0),),””)
真乃公式之王也!
公式2:
=IF(OR(AND(MOD(A2,1)=0,IFERROR(MOD(A2,$A$1:A1),1)<>0),A2=2),”素数”,MATCH(0,MOD(A2,IFERROR((ROW($A$1:A1)-1)+
SEARCH(“素数”,$B$1:B1),””)),0)&”x”&IF(LOOKUP(GCD(A2,A2/MATCH(0,MOD(A2,IFERROR((ROW($A$1:A1)-1)+
SEARCH(“素数”,$B$1:B1),””)),0)),$A$1:A1,$B$1:B1)=”素数”,GCD(A2,A2/MATCH(0,MOD(A2,IFERROR((ROW($A$1:A1)-1)+
SEARCH(“素数”,$B$1:B1),””)),0)),LOOKUP(GCD(A2,A2/MATCH(0,MOD(A2,IFERROR((ROW($A$1:A1)-1)+
SEARCH(“素数”,$B$1:B1),””)),0)),$A$1:A1,$B$1:B1)))
使用了GCD函数,太神奇了!
公式3:
=IF((MATCH(TRUE,INT(A2/ROW(INDIRECT(“2:”&A2)))=A2/ROW(INDIRECT(“2:”&A2)),)+1)=A2,”素数”, IF(VLOOKUP((A2/(MATCH(TRUE,INT(A2/ROW(INDIRECT(“2:”&A2)))=A2/ROW(INDIRECT(“2:”&A2)),)+1)),A:B,2,)=”素数”,MATCH(TRUE,INT(A2/ROW(INDIRECT(“2:”&A2)))=A2/ROW(INDIRECT(“2:”&A2)),)+1&”x”&(A2/(MATCH(TRUE,INT(A2/ROW(INDIRECT(“2:”&A2)))=A2/ROW(INDIRECT(“2:”&A2)),)+1)),MATCH(TRUE,INT(A2/ROW(INDIRECT(“2:”&A2)))=A2/ROW(INDIRECT(“2:”&A2)),)+1&”x”&VLOOKUP((A2/(MATCH(TRUE,INT((A2/ROW(INDIRECT(“2:”&A2))))=A2/ROW(INDIRECT(“2:”&A2)),)+1)),A:B,2,)))
这个公式重复利用了以前的计算结果。如果规定数字只在单元格A2中,在单元格B2中使用公式判断素数或进行乘数分解的话,那么这个公式就不适用了。
公式4:
=IF(OR(A2=2,A2=3,A2=5,A2=7),”素数”,REPT(“2x”,LN(GCD(64,A2))/LN(2))&REPT(“3x”,LN(GCD(81,A2))/LN(3))&REPT(“5x”,LN(GCD(25,A2))/LN(5))&REPT(“7x”,LN(GCD(49,A2))/LN(7))&IF(A2/GCD(64,A2)/GCD(81,A2)/GCD(25,A2)/GCD(49,A2)=1,””,A2/GCD(64,A2)/GCD(81,A2)/GCD(25,A2)/GCD(49,A2)))
由于A2 <= 100,因此如果A2不是素数,则素数因子必须<sqrt(100)或10。该公式在数字分解式后面会产生一个额外的“x”,此外,对于大于10的数,该公式不会判断为素数,但对于不是素数的数会给出完美的因式分解相乘的式子。
猜你喜欢
- 大家在办公的时候是不是经常会用到Word呢?Word其实说难也不难,但是说简单也不简单,关键就是只要你会用,就会变得非常简单,我发现很多人都
- Word处理网页内容的技巧图文教程第1步,打开Word2003,依次单击“文件”→“打开”菜单命令,打开“打开”对话框。在“文件名”编辑框中
- 很多网友问Excel2019怎么查看软件版本号?这篇文章主要介绍了Excel2019查询版本信息教程,需要的朋友可以参考下如果你想查看当前使
- 在excel中,使用函数公式生成的单元格数据在点击进入单元格后会显示其引用的位置或者相对应的函数公式。那么excel如何复制函数公式?下面小
- 我们在使用word进行文档制作时,为了文本的美观往往需要进行页眉、页脚的处理,那你知道怎样处理吗?下面让小编为你带来word设置页眉横线的方
- 在使用Word2010制作小学语文试题时,会为汉字添加拼音,并且要将拼音排到汉字的右侧,虽然可使用Word的“拼音指南”功能为汉字添加拼音,
- 简而言之,就是更新显卡驱动程序。 您不需要自己去官方网站。 对于老鸟,请打开设备管理器,选择显示适配器,然后设置“ Windows默认驱动程
- 遇到在Win10操作系统下运行3DMAX总是出现自动重启电脑的问题要怎么办,一般就是检测电源供电、硬件等问题即可,那么下面我们一起看看Win
- 本文主要向大家介绍excel单元格里的内容如何随意移动到另一个表格中方法,对于不知道怎么操作的朋友可以参考一下,希望能对大家有所帮助exce
- 故障问题:大容易Word文档无法正常打开,完全打开文档后提示“Word无效页面”的错误信息。故障处理:从故障现象来看可能是word文档部分结
- 笔者曾经介绍过用MS VISIO 2002制作工作流程图的方法,但是很多朋友反映自己的电脑上并没有安装VISIO,而且对VISIO还有种陌生
- word中,标点符号与汉字紧紧贴在一起,不是字符紧缩,不是半角全角的问题,请问怎么处理?经测试,是模板出问题了,删除word模板就好了。 默
- 假设今天是2018年2月28日,明天是3月1日,为什么不是2月29日?估计很多人都知道原因:2018年是平年,不是闰年,平年2月只有28天。
- 使用一个公式来获取当前单元格所在列的列字符,例如当前单元格为B2,其所在列为列B。如何使用一个公式来获取当前单元格B2所在列的列字符B呢?先
- word尾注,自动标注参考文献的方法:第一步 设置第一个尾注1. 光标移到需要插入参考文献标注的地方。2. 在菜单栏“插入(I)”→“引用(
- 大家都知道腾讯电脑管家自带健康小助手,但是不知道它有什么作用,其实它可以帮助我们管理使用电脑的时间及注意一些日常事项,那就有人问了要怎么设置
- word2016圆周率符号怎么输入?word中需要输入圆周率π的符号,该怎么输入这个特殊符号呢?下面我们就来看看word打圆周率的教程,需要
- 在编辑文档的时候,对文档中的文本会进行很多方面的设置,如上面提过的字体以及字体大孝效果等等,而在文档中我们也会输入英文文本,而常常要对英文文
- 开始使用win10有点不习惯吗? 您在win10中找到小的内置技能了吗? 随着Windows的迭代,越来越多的内置软件将变得越来越有用,并且
- 1.打开Excel选中需要添加图标的特殊数据,接着点击工具栏的“样式”→“条件样式”→“图标集”接着我们就可以在图标集里选择想要的图标即可。