excel公式技巧判断素数方法

时间:2023-03-25 11:27:31 

在列A中给定一个整数值,例如单元格A2,并且2 <= A2 <= 100,要在列B中(例如单元格B2)使用公式进行判断:如果列A中的值是素数,则返回“素数”;否则,返回该数的素数乘法分解式(其中小写的“x”表示乘法),如下图1所示。

excel公式技巧判断素数方法

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

标签:excel函数应用,excel数据透视表,excel表格制作,Excel教程
0
投稿

猜你喜欢

  • Win7卡在启动界面怎么办?Win7卡在启动界面的解决方法

    2022-04-16 19:18:15
  • excel2019怎么加密文件?excel2019文件加密教程

    2022-08-04 23:47:43
  • Win10系统如何恢复开始屏幕菜单以便操作

    2023-10-28 16:25:02
  • Win7电源管理不见了怎么办 系统没有电源管理功能的解决方法

    2022-12-05 20:12:15
  • win10玩红警2很卡怎么办?解决win10玩红警2卡顿的方法

    2022-05-23 16:20:06
  • 解决Windows7声卡无法安装的问题

    2022-10-04 14:24:07
  • Word文档更改格式的两种方法,第二种方法你不一定用过

    2023-04-13 05:03:14
  • Boom 3D和Boom 2有什么区别?Boom 3D功能介绍

    2023-05-27 02:07:03
  • Wps表格中的数字怎么转换成汉字?

    2023-03-06 07:53:44
  • ​PPT放映时无法切换到下一张怎么办

    2023-01-27 03:19:56
  • Excel 如何利用INDIRECT函数实现多表数据汇总

    2022-02-18 05:52:41
  • excel表格内自动求和的教程

    2022-04-06 10:00:50
  • Word2007自定义设置页眉页脚的页码样式的方法步骤

    2022-09-27 02:05:30
  • Word2007不能自动生成注音怎么办

    2023-11-30 18:06:27
  • Win7系统电脑插耳机后声音很小的解决办法

    2023-05-01 19:34:51
  • 怎么迅速区分系统是32位?还是64位?

    2023-06-19 22:52:30
  • wegame安装失败,安装包文件MD5校验失败,错误码:7001263(7002263)

    2023-04-24 15:39:40
  • 电脑开机桌面一片空白是怎么回事?

    2023-07-26 14:54:10
  • Bootsqm.dat是什么文件?电脑Bootsqm.dat文件介绍

    2022-06-17 20:43:21
  • Win7系统怎么查看与删除隐藏账户

    2023-12-18 21:23:29
  • asp之家 电脑教程 m.aspxhome.com