在 Excel 中輸入一個數值,如何直接判斷是否為質數?如下圖,產生一堆的亂數,立即判斷該數是否為一個質數。
【公式設計與解析】
儲存格B2:
=IF(SUMPRODUCT(--(MOD(A2,ROW(INDIRECT("2:"&(A2-1))))=0))=0,"質數","")
ROW(INDIRECT("2:"&(A2-1))):在 SUMPRODUCT 函數中,可以根據儲存格A2,產生去頭尾的數值。例如:儲存格A2=347,則傳回 ROW(2:346),代表 2~346。
MOD(A2,ROW(INDIRECT("2:"&(A2-1)))):將儲存格A2除以該數去頭尾的數值,取得其餘數。此例傳回:347/2、347/3、347/4、...、347/345、347/346 的餘數。(依照數學的定義,其實只要除到該數的平方根即可。)
上式如果整除,會傳回0,若非整除,則會產生非0的餘數。
--(MOD(A2,ROW(INDIRECT("2:"&(A2-1))))=0))=0:判斷上式的結果有幾個0,其中「--」乃將判斷結果的 TRUE/FALSE 轉換為 1/0。
SUMPRODUCT(--(MOD(A2,ROW(INDIRECT("2:"&(A2-1))))=0)):如果最後的總和為『0』,代表沒有除盡任何一個數,則該數即為『質數』。
複製儲存格B2,貼至儲存格B2:B18。
全站熱搜