Excel公式:将不是素数的数分解为素数的乘积
发布时间:2023-06-24 18:25:13
本次的练习是:在列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的数,该公式不会判断为素数,但对于不是素数的数会给出完美的因式分解相乘的式子。


猜你喜欢
- 在Excel 2003中,可以通过单击菜单“数据→数据透视表和数据透视图”来启动数据透视表和数据透视图向导,但在Excel 2007中,“数
- 今天我们用动画的形式介绍在PowerPoint演示文稿中嵌入字体格式的方法和技巧。当我们将制作好演示文稿复制到其他电脑中进行播放时,由于其他
- 键盘是电脑的重要组成部分之一,打字离不开键盘,但是最近有win10用户跟小编反应自己遇到键盘按键错乱的情况,这是不是键盘坏掉了?小编认为可能
- Win10系统电脑风扇一直狂转怎么办?最近有用户反映,在使用Win10系统电脑的时候,风扇转的特别快,该如何解决这个问题?下面给大家介绍Wi
- Excel2010的简繁转换操作和EXCEL2007差不多,但貌似excel2010要比2007稳定多了,几乎未见2010丢失简繁转换功能的
- 迅捷CAD编辑器是一款非常好用的绘图软件,我们经常需要在图纸中插入PPT幻灯片,那你知道迅捷CAD编辑器怎么插入PPT幻灯片的吗?接下来我们
- Win10系统如何启用引导日志?当我们的系统遇到启动故障时,可以通过引导日志文件来排查问题。不过,在Win10系统的默认情况下,引导日志是关
- 学习强国是一款功能非常强大的知识学习软件,提供了海量且免费的学习资源,让用户足不出户便能在家学习。不过,最近有用户反映学习强国的字体太小了,
- 在制作表格的时候,为了规范用户输入的内容,我们可以在wps中设置内容限制输入的功能,下面就让小编告诉你wps表格怎样限制输入内容。wps表格
- 有没有觉得在Excel中一个一个的输入公式太麻烦了,它里面可是有自动填充功能的哦,大家都来用用吧。以下是小编为您带来的关于Excel中自动填
- 在win10系统中由于打开商店的时候一直显示打开Windows更新使用疑难解答来检测修复系统的情况下出现了错误代码:0x803c010A 的
- 有很多地方都会用到统计图,但无论是用何种方法创建的图表,编辑方法是相同的。那么在这里小编向大家介绍用word制作简单扇形图的方法,希望对你有
- Win10系统可以说是最常用的系统之一,而有一些小伙伴在使用Win10系统电脑的过程中会碰到任务栏设置打不开的情况出现,那么碰到这个问题应该
- 代理服务器(Proxy Server)的功能是代理网络用户去取得网络信息。形象地说,它是网络信息的中转站,是个人网络和Internet服务商
- 我们可以在wps中对表格进行填充,如果我们需要对某部分表格设置填充,需要哪些操作呢?下面就让小编告诉你怎样设置wps表格填充范围 的方法。设
- 相信比较熟悉WPS Excel表格的小伙伴们都知道,我们在WPS Excel表格中,可以通过定位功能快速查找两列数据中的差异数据,主要是用到
- geforce experience扫描不到游戏怎么办?geforce experience是NVIDIA推出的一款全新应用程序,这款程序能
- 本文教你在win7和vista操作系统中如何关闭用户账户控制的方法win7操作系统 开始-》控制面板-》用户账户和家庭安全-》用户账户-》更
- win10作为一款经典的电脑系统,不仅仅是因为它的功能齐全,还是因为它优化之后更加的简洁美观,对于刚接触电脑的新人,更易上手操作,win10
- win11系统硬盘怎么设置性能?win11系统中的硬盘或者U盘想要设置性能,该怎么开启高性能呢?下面我们就来看看Win11磁盘开启高性能的技