Excel公式:將不是素數的數分解為素數的乘積

      網友投稿 603 2025-04-04

      Excel公式:將不是素數的數分解為素數的乘積


      本次的練習是:在列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不是素數,則素數因子必須

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:Excel2016數組公式怎么定義為名稱?
      下一篇:分數怎么打wps office
      相關文章
      亚洲人成网站在线观看播放| 国产亚洲精品国产福利在线观看| 久久亚洲精品无码av| 亚洲国产最大av| 亚洲成人黄色在线| 7777久久亚洲中文字幕蜜桃| 久久久亚洲裙底偷窥综合| 亚洲一本综合久久| 91亚洲精品第一综合不卡播放| 亚洲黄色中文字幕| 亚洲成人免费网址| 亚洲一区二区三区在线观看蜜桃| 亚洲人成色777777精品| 亚洲福利视频一区二区三区| 亚洲网站在线播放| 亚洲国产成人九九综合| 亚洲精品亚洲人成在线播放| 亚洲日本中文字幕天天更新| 亚洲另类无码专区丝袜| 九九精品国产亚洲AV日韩| 国产亚洲福利一区二区免费看| 亚洲精品人成无码中文毛片| 亚洲国产成人久久综合区| 美腿丝袜亚洲综合| 国产∨亚洲V天堂无码久久久| 亚洲福利视频导航| 亚洲激情视频网站| 亚洲免费福利在线视频| 亚洲精品久久无码av片俺去也| 在线观看国产一区亚洲bd| 亚洲乱码国产一区网址| 亚洲熟妇中文字幕五十中出| 亚洲国产精品久久久久婷婷老年 | 久久青青草原亚洲AV无码麻豆| 精品久久香蕉国产线看观看亚洲| 水蜜桃亚洲一二三四在线| 亚洲美女中文字幕| 亚洲中文字幕无码爆乳| 亚洲电影日韩精品| 亚洲色偷拍另类无码专区| 亚洲精品免费在线观看|