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的数,该公式不会判断为素数,但对于不是素数的数会给出完美的因式分解相乘的式子。
猜你喜欢
- Word页码罗马数字怎么输入?其实Word是不能使用罗马数字当做目录页码的,那么想使用此功能这么办呢?下面是小编介绍Word页码插入罗马数字
- Hello大家好,我是帮帮。今天跟大家分享一下word手动签名插入技巧、快捷图片排版,实用简单高效学起来。有个好消息!为了方便大家更快的掌握
- 现在很多用户的电脑除了cpu上有核心显卡外还单独配置了独立显卡,通常win10系统下会默认使用核心显卡,只有在运行大型程序才会调用独立显卡,
- excel除了可以对数据进行排序和求和之外还可以进行一些更为复杂的计算,比如方差的计算就有一个专门的函数公式可以直接对数据处理,那么exce
- 在同一行或列中填充数据在同一行或列中自动填充数据的方法很简单,只需选中包含填充数据的单元格,然后用鼠标拖动填充柄(位于选定区域右下角的小黑色
- 可能:你的word页面设置里右页边距>左页边距解决方法:文件→页面设置→将左右页边距设成一样的就可以了最笨但最好用的方法:复制这个表格,新建
- 如果存在两页的A4纸的文档内容,本着为节约资源的利用也好,或受条件的限制(如:办公室刚好没有A4纸,只有A3纸)也好,同时,在不进行任何格式
- 许多大学生在写毕业论文的时候往往会遇到这样一个问题,论文的第一页为标题简介,第二页目录,第三页才正式开始,所以前两页更本不需要页码,我们只需
- 怎么恢复受损的Excel文件? 在日常工作中,Excel文件可能会出现各种各样的问题,例如乱码等,会使文件无法继续使用,给工作带来很多麻烦。
- word文档中既有A3又有A4纸张该怎么打印?手里有一份文档需要打印出来,预览的时候发现既有a3纸张又有a4纸张的格式,该怎么一次打印出来呢
- 我们在使用Win10系统电脑玩游戏的时候经常会弹出打字输入框,尤其是FPS游戏中的Shift键常是加速功能,那么遇到这种情况应该怎么办呢?下
- 很多朋友在Word2016中找不到具体的预览按钮,这里介绍Word2016怎么打印预览,提供参考。 1、我们打开一
- 有些用户可能会发现,在 iPhone 上设置和添加 Apple Pay 之后,iPhone 无法使用此前的密码进行解锁了。此时,可以尝试通过
- 打开Word文档弹出此文包含的链接该怎么办?从网上下载了word文档后,打开总是弹出此文包含的链接可能引用了其他文件,该怎么断开该文档的链接
- Word作为最常被使用的文本编辑工具在日常工作学习中广泛使用。随之对于文档打印自然也有着不小的需求。下面就给大家分享几条Word打印技巧。1
- 在文档中有一个不错的功能即导航窗格,今天Word小编与大家分享一下有关Word导航窗格用法。1、导航窗格的打开方式点击视图——显示,勾选导航
- word中有很多的实用标志。不知道你知不知道。比如“禁止吸烟”的标志;滑雪标志;雷电标志;游泳标志等很多你不知道的很实用标志,可以为你的工作
- Win10系统是目前非常火热的电脑操作系统,很多用户办公都在使用,当我们遇到了系统出现某些问题无法处理的情况,有时会选择将电脑恢复出厂设置,
- 最近有Win10用户反映,IE浏览器的主页被一些流氓软件恶意篡改,并且被锁定导致用户无法修改主页,那么遇到这种问题应该怎么办呢?下面就和小编
- win10底部任务栏无响应是因为升级新版本后“Windows资源管理器”运行异常所造成的,同时也跟扩展菜单影响右键菜单弹出速度有关。不过现在