Excel公式怎么判斷素數?在列A中給定一個整數值,例如單元格A2,并且2 <= A2 <= 100,要在列B中(例如單元格B2)使用公式進行判斷:如果列A中的值是素數,則返回“素數”,如下圖1所示。
圖1
素數也稱質數,是指在大于1的自然數中,除了1和它本身外不再有其他因數的自然數。
先不看答案,自已動手試一試。
公式
公式1:=IF(SUM(–ISERR(FIND(“.”,A2/ROW(INDIRECT(“A1:A”&A2)))))=2,”素數”,””)
其原理為,將值除以1至其本身的各個數,然后查找結果中的小數。如果是素數的話,那么結果中只有兩個不是小數。
例如,如果A2中的值為11,則公式1可轉換為:=IF(SUM(–ISERR(FIND(“.”,A2/ROW(INDIRECT(“A1:A”&11)))))=2,”素數”,””)
轉換為:=IF(SUM(–ISERR(FIND(“.”,A2/ROW(INDIRECT(“A1:A11″)))))=2,”素數”,””)
轉換為:=IF(SUM(–ISERR(FIND(“.”,A2/ROW($A$1:$A$11))))=2,”素數”,””)
轉換為:=IF(SUM(–ISERR(FIND(“.”,11/{1;2;3;4;5;6;7;8;9;10;11})))=2,”素數”,””)
轉換為:=IF(SUM(–ISERR(FIND(“.”,{11;5.5;3.66666666666667;2.75;2.2;1.83333333333333;1.57142857142857;1.375;1.22222222222222;1.1;1})))=2,”素數”,””)
轉換為:=IF(SUM(–ISERR({#VALUE!;2;2;2;2;2;2;2;2;2;#VALUE!}))=2,”素數”,””)
轉換為:=IF(SUM(–{TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE})=2,”素數”,””)
轉換為:=IF(SUM({1;0;0;0;0;0;0;0;0;0;1})=2,”素數”,””)
轉換為:=IF(2=2,”素數”,””)
轉換為:=IF(TRUE,”素數”,””)
得到:素數
公式2:=IF(SUM(–(MOD(A2,A$2:A2)=0))=1,”素數”,””)
其原理為,求值與2至其本身的各個數的余數,如果只有一個余數為0,說明是素數。