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的数,该公式不会判断为素数,但对于不是素数的数会给出完美的因式分解相乘的式子。


猜你喜欢
- 一家药店,打算通过打印机把药品、价格等相关信息打印在价格牌上,现在有药品的基本信息,请问如何把这些信息套打在价格牌上面?下面小编就为大家介绍
- 从截图上看出使用的是WPS,不过就这个问题,不管是WPS和MSOffice都可以搞定。 放大之后具体问题是啥?输入城市区县能自动显示他属于
- mac u盘重装系统具体怎么操作呢?mac制作mac启动盘难不难?为了方便Mac电脑重装,我们都备用着U盘,把macOS 系统装到U盘里,都
- 如今家家户户都有网络,有网络就会涉及到路由器,并且路由器安全也是一大重点。今天小编要为大家介绍的是路由器优化大师使用教程,很多朋友都不知道这
- 很多时候我们会用到文件加密,最常用的办公软件office中word的加密非常简单,今天,小编就教大家在Word中进行加密操作的设置方法。Wo
- 最近学校要举办一次英语口语比赛,其中有一个环节是自由演讲,时间为30秒,由选手自己选定主题。领导决定由我来设计一个计时系统,要求能够实时显示
- 如何在wps ppt中制作一个分析数据的饼图呢?下面小编就为你提供wps ppt怎么制作饼图的方法啦!wps ppt制作饼图的方法:首先我们
- Win8系统下打不开软件,提示:无法打开这个应用,无法使用内置管理员账户打开应用商店,请使用其他账户登录,然后再试一次。Win8系统下打不开
- 本文主要介绍windows7自带的一款工具--robocopy。利用他来迁移和备份系统一些数据。Robocopy.exe 是 微软在Wind
- Excel中经常需要按照数字进行排序,按照数字具体该如何进行排序呢?下面是由小编分享的excel表格按照数字排序的方法,以供大家阅读和学习。
- 前两天才给小许做了学生信息对比的表,今天就来问,为什么这个IF函数出错了,一看截图,心凉了半截。梅哥是要判断,实际拜访次数是否大于理论应拜访
- 当我们手拿着一些重要的文件时,为防止丢失。我们都会选择多复印几份,做以保留。我们的电脑也是如此,因为我们是无法预知电脑会出现什么问题,有什么
- Win11系统虽然还未发布正式版,但是已经有很多的用户升级了Win11系统,那么关于Win11和Win7系统哪个好的讨论也没有停止,本文将为
- 使用Windows10系统的朋友,大家在查看更新历史记录时,有没有发现bing工具栏7.0(KB2626806)总是会出现在更新记录里,这个
- QQ五笔输入法手动造词的方法如下:可以通过在状态栏上面右键菜单的“常用工具”中的“五笔造新词”来打开造词工具。 或
- Wps是一款十分常见的办公软件,而且使用的用户也是非常的多,不过当我们在使用Wps处理一些表格文件时难免会遇到一些不连续的空白单元格需要填充
- Win10系统的小娜到底好不好用,我们现在是体会不到。因为现在的小娜还不会说汉语,所以大多数人想到的禁用小娜。其实禁用Win10微软小娜的方
- 在制作wps表格的时候,怎么样去设置列宽呢?下面小编就为你提供wps表格怎么设置列宽的方法啦!wps表格设置列宽的方法:首先打开你所要修改列
- 下面截图的数据是收集到的各个销售部门的营业额,有些部门提供的数据不规范,比如销售一、三、五部直接把单位放在数字后面。
- 钉钉显示学生已存在请联系班主任解决方法分享。有教师在添加学生到班级群的时候,出现了错误提示,显示学生已存在了,但是该学生并未进行添加。出现这