Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Excel公式练习54: 判断素数,并将不是素数的数分解为素数的乘积

Excel公式练习54: 判断素数,并将不是素数的数分解为素数的乘积

作者头像
fanjy
发布于 2020-03-25 07:39:11
发布于 2020-03-25 07:39:11
7700
举报
文章被收录于专栏:完美Excel完美Excel

导语:继续研究来自于excelxor.com的案例。建议结合本文阅读原文,会了解更多的细节,会有更大的收获。

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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Excel公式练习40: 从单元格区域的字符串中提取唯一值
导语:继续研究来自于excelxor.com的案例。坚持到现在的,应该都有感觉了!
fanjy
2020/02/26
2.4K0
Excel公式技巧17: 使用VLOOKUP函数在多个工作表中查找相匹配的值(2)
我们给出了基于在多个工作表给定列中匹配单个条件来返回值的解决方案。本文使用与之相同的示例,但是将匹配多个条件,并提供两个解决方案:一个是使用辅助列,另一个不使用辅助列。
fanjy
2020/03/12
15.5K0
Excel公式技巧14: 在主工作表中汇总多个工作表中满足条件的值
我们可能熟悉使用INDEX、SMALL等在给定单列或单行数组的情况下,返回满足一个或多个条件的值的列表。这是一项标准的公式技术。
fanjy
2020/03/12
10.3K0
Excel公式练习44: 从多列中返回唯一且按字母顺序排列的列表
导语:继续研究来自于excelxor.com的案例。这个案例似乎又有点复杂,但其中许多公式技术仍值得我们反复琢磨。
fanjy
2020/02/29
4.9K0
Excel公式练习36: 找到和的加数
导语:继续研究来自于excelxor.com的案例。太有才了!多的不说,有兴趣的朋友往下看。
fanjy
2020/02/18
8290
Excel公式练习37: 找到和的加数(增强版)
导语:继续研究来自于excelxor.com的案例。在《Excel公式练习36:找到和的加数》中,讲解了一个公式,可以标出指定和的加数,然而,如果有几种组合都可以得到这个和数,该公式只能标出其中一种组合,本文讲解的公式就来解决这个问题,将所有的组合都标出来。
fanjy
2020/02/14
1.1K0
Excel公式练习37: 找到和的加数(增强版)
Excel公式练习42: 统计句子中满足条件的单词个数
导语:继续研究来自于excelxor.com的案例。这个案例应用了前面分享的一些公式技巧,值得反复学习。
fanjy
2020/02/26
1.6K0
36条常用Excel技巧 收藏备用!
1、两列数据查找相同值对应的位置 =MATCH(B1,A:A,0) 2、已知公式得结果 定义名称=EVALUATE(Sheet1!C1) 已知结果得公式 定义名称=GET.CELL(6,Sheet1!C1) 3、强制换行 用Alt+Enter 4、超过15位数字输入 这个问题问的人太多了,也收起来吧。一、单元格设置为文本;二、在输入数字前先输入' 5、如果隐藏了B列,如果让它显示出来? 选中A到C列,点击右键,取消隐藏 选中A到C列,双击选中任一列宽线或改变任一列宽 将鼠标移到到AC列之间,等鼠标变为双竖线
CDA数据分析师
2018/02/24
3.7K0
Excel公式练习39: 求字符串中的数字组成的数能够被指定数整除的数的个数
导语:继续研究来自于excelxor.com的案例。这个案例比较复杂,需要仔细研究。
fanjy
2020/02/26
1.7K0
Excel公式练习53: 判断素数
导语:继续研究来自于excelxor.com的案例。建议结合本文阅读原文,会了解更多的细节,会有更大的收获。
fanjy
2020/03/25
1.1K0
Excel公式练习53: 判断素数
Excel公式练习38: 求一列中的数字剔除掉另一列中的数字后剩下的数字
导语:继续研究来自于excelxor.com的案例。这个案例看似简单,然而实现起来却比较难,这里面用到的技巧值得学习。
fanjy
2020/02/26
3.9K0
Excel公式技巧107:将表数据转换成列数据(续)
在《Excel公式技巧106:将表数据转换成列数据》中,详细解析了一位网友问我的问题的解答过程。然而,事情并没有完。上次提供的示例数据太完美了,所以实现起来相对简单。在上次的解答之后,该名网友又提出了一个比较棘手的问题。
fanjy
2021/09/22
1.7K0
Excel公式技巧13: 从字符串中提取数字——将所有数字提取到单个单元格
前三篇文章分别讲解了提取位于字符串开头和末尾的数字的公式技术、提取字符串中所有的数字并放在不同的单元格中的公式技术,本文研究从字符串中提取所有数字并将这些数字作为单个数字放置在单个单元格中的技术。
fanjy
2020/03/16
2.8K0
Excel函数的No.1,Indirect的使用方法(入门+初级篇)
如果评谁是Excel最牛X的函数,兰色肯定推选Indirect函数,因为其他函数大多可以被某他函数替代,而indirect独特的作用在Excel中独此一个,无可替代。而且它应用非常广泛。兰色这次花费了三天时间,整理出了indirect函数从入门+初级+进阶+高级应用的全系列教程,希望对想全面学习indirect函数的同学们有所帮助。今天是入门篇+初级篇。
用户11524956
2025/02/24
3710
Excel公式技巧25: 使SUMIFS/COUNTIFS函数内的间接列引用变化
使用Excel朋友都知道,将包含相对列引用的公式复制到其他列时,这些引用也会相应地更新。例如,公式:
fanjy
2020/03/25
3.1K0
Excel公式练习92:统计两个字符串共有的唯一字符数
引言:本文的练习整理自chandoo.org。多一些练习,想想自己怎么解决问题,看看别人又是怎解决的,能够快速提高Excel公式编写水平。
fanjy
2021/08/31
1.1K0
Excel公式练习92:统计两个字符串共有的唯一字符数
Excel公式技巧16: 使用VLOOKUP函数在多个工作表中查找相匹配的值(1)
在某个工作表单元格区域中查找值时,我们通常都会使用VLOOKUP函数。但是,如果在多个工作表中查找值并返回第一个相匹配的值时,可以使用VLOOKUP函数吗?本文将讲解这个技术。
fanjy
2020/03/12
29.5K0
Excel公式练习52: 获取多个工作表单元格区域的数据组成的数组
导语:继续研究来自于excelxor.com的案例。建议结合本文阅读原文,会了解更多的细节,会有更大的收获。
fanjy
2020/03/25
1.4K0
Excel公式练习52: 获取多个工作表单元格区域的数据组成的数组
社群答疑精选02:不重复数据统计——如何统计员工负责的客户数?(续)
昨天详细整理了在完美Excel社群上回答Alpha朋友提出的问题解答思路和过程,详见:
fanjy
2020/08/05
1.3K0
社群答疑精选02:不重复数据统计——如何统计员工负责的客户数?(续)
Excel公式:有重复的?没重复的?又要判断了
对于简单的少量的数据,一眼就看得出来。然而,对于大量的数据,最好借助于Excel提供给我们的工具,譬如,公式。
fanjy
2022/11/16
2K0
Excel公式:有重复的?没重复的?又要判断了
推荐阅读
Excel公式练习40: 从单元格区域的字符串中提取唯一值
2.4K0
Excel公式技巧17: 使用VLOOKUP函数在多个工作表中查找相匹配的值(2)
15.5K0
Excel公式技巧14: 在主工作表中汇总多个工作表中满足条件的值
10.3K0
Excel公式练习44: 从多列中返回唯一且按字母顺序排列的列表
4.9K0
Excel公式练习36: 找到和的加数
8290
Excel公式练习37: 找到和的加数(增强版)
1.1K0
Excel公式练习42: 统计句子中满足条件的单词个数
1.6K0
36条常用Excel技巧 收藏备用!
3.7K0
Excel公式练习39: 求字符串中的数字组成的数能够被指定数整除的数的个数
1.7K0
Excel公式练习53: 判断素数
1.1K0
Excel公式练习38: 求一列中的数字剔除掉另一列中的数字后剩下的数字
3.9K0
Excel公式技巧107:将表数据转换成列数据(续)
1.7K0
Excel公式技巧13: 从字符串中提取数字——将所有数字提取到单个单元格
2.8K0
Excel函数的No.1,Indirect的使用方法(入门+初级篇)
3710
Excel公式技巧25: 使SUMIFS/COUNTIFS函数内的间接列引用变化
3.1K0
Excel公式练习92:统计两个字符串共有的唯一字符数
1.1K0
Excel公式技巧16: 使用VLOOKUP函数在多个工作表中查找相匹配的值(1)
29.5K0
Excel公式练习52: 获取多个工作表单元格区域的数据组成的数组
1.4K0
社群答疑精选02:不重复数据统计——如何统计员工负责的客户数?(续)
1.3K0
Excel公式:有重复的?没重复的?又要判断了
2K0
相关推荐
Excel公式练习40: 从单元格区域的字符串中提取唯一值
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档