EXCEL中怎样判断某单元格数值是否是质数

 我来答
long826121
2011-02-17 · TA获得超过6603个赞
知道小有建树答主
回答量:848
采纳率:100%
帮助的人:451万
展开全部
根据质数的定义,在判断一个数n是否是质数时,我们只要用1至n-1去除n,看看能否整除即可。但我们有更好的办法。先找一个数m,使m的平方大于n,再用<=m的质数去除n,如果都不能整除,则n必然是质数。如我们要判断1993是不是质数,50*50>1993,那么我们只要用1993去除<50的质数就可以了。100以内的质数有25个,还是比较好记的,我们只要记熟100以内质数,就可以快速判断10000以内的数是不是质数了。
例如数据在F列,结果在E列
先来个VBA的
Sub 判断质数()
Dim i&, k&, x&
Dim arr, arr1
arr = Range("F1:F" & Range("F65536").End(xlUp).Row)
ReDim arr1(1 To UBound(arr))
For y = 1 To UBound(arr)
i1 = arr(y, 1)
i = Int(Sqr(i1)) + 1
If i1 > 1 And i1 < 4 Then
arr1(y) = "质数"
ElseIf i1 > 3 Then
For x = 2 To i
If i1 Mod x = 0 Then
arr1(y) = "合数"
GoTo Tao1
End If
Next x
arr1(y) = "质数"
ElseIf i1 < 2 Then
arr1(y) = "非质非合"
End If
Tao1:
Next y
Range("G1").Resize(UBound(arr1), 1) = Application.Transpose(arr1)
End Sub
公式:
=IF(AND(F1>=2,F1=INT(F1)),IF(SUM(--(MOD(F1,ROW(INDIRECT("1:"&INT(SQRT(F1)))))=0))>1,"合数","质数"),"非质非合")按ctrl+shift+回车数组公式 ,公式下拉
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式