首页 办公 正文

excel筛选质数合数(筛选质数的最快算法)

如何设条件利用excel软件判断一个数是质数还是合数同时按Alt和F11进入宏界面。...

如何设条件利用excel软件判断一个数是质数还是合数

同时按Alt和F11进入宏界面,点菜单的插入,模块,粘贴如下代码:

自定义函数:

Function

ZHSHU(x

As

Long)

As

String

Dim

i

As

Long

If

x

=

1

Then

ZHSHU

=

"??":

Exit

Function

If

x

=

2

Or

x

=

3

Then

ZHSHU

=

"质数":

Exit

Function

For

i

=

2

To

Int(Sqr(x))

If

Int(x

/

i)

=

x

/

i

Then

ZHSHU

=

"合数"

Exit

Function

Else

ZHSHU

=

"质数"

End

If

Next

i

End

Function

回到Excel中,在某单元格输入=ZHSHU(A1)

就可以返回A1是质数还是合数。

也可以不用自定义函数,直接输入

=IF(A1=1,"??",IF(OR(A1=2,A1=3),"质数",IF(OR(INT(A1/ROW((INDIRECT("2:"INT(SQRT(A1))))))=A1/ROW((INDIRECT("2:"INT(SQRT(A1)))))),"合数","质数")))

但要同时按Ctrl、Shift、Enter(数组公式)

EXCEL里怎么判断质、合数

详细参见我的blog:

假设在a1单元格是要判断的数据,则在其他空白单元格(如a2)输入数组公式(输入方法:输入公式后,不是按回车,而是按组合键

ctrl+shift+enter):

=if(and(a14,a1=int(a1)),if(or(int(a1/row(indirect("2:"int(sqrt(a1)))))*row(indirect("2:"int(sqrt(a1))))=a1),"合数","质数"),if(or(a1={2,3}),"质数","合数"))

即可判断出a1里的数据是质数还是合数。不过,要注意其范围:可判别不大于4295098368的数(包括小数和所有负数),可判别出的最大质数为4295098349

在Excel中怎么判断某个数是质数还是合数?

详细参见我的blog:

假设在A1单元格是要判断的数据,则在其他空白单元格(如A2)输入数组公式(输入方法:输入公式后,不是按回车,而是按组合键 Ctrl+Shift+Enter):

=IF(AND(A14,A1=INT(A1)),IF(OR(INT(A1/ROW(INDIRECT("2:"INT(SQRT(A1)))))*ROW(INDIRECT("2:"INT(SQRT(A1))))=A1),"合数","质数"),IF(OR(A1={2,3}),"质数","合数"))

即可判断出A1里的数据是质数还是合数。不过,要注意其范围:可判别不大于4295098368的数(包括小数和所有负数),可判别出的最大质数为4295098349

excel同时判定两个数据为质数或合数

需要写自定义函数判断是否质数

Alt+F11,插入模块,自定义一个判断是否是质数的函数:

代码:

Function ZS(nNum) As Boolean

    Dim n, i

    ZS = True

    If nNum = 3 Then Exit Function

    n = Int(Sqr(nNum))

    For i = 2 To n

        If nNum / i = nNum \ i Then ZS = False: Exit Function

    Next

End Function

C2公式:

=IFS(zs(A2)+zs(B2)=0,"合合",zs(A2)+zs(B2)=2,"质质",zs(A2),"质合",zs(B2),"合质")

下拉填充即可。

excel函数公式判断质数合数条件公式?

B2输入

=IF(SUMPRODUCT(N(MOD($A2,ROW(INDIRECT("1:"(A2))))=0))2,"合","质")

公式下拉

本文转载自互联网,如有侵权,联系删除