素数过称有问题,开始赋值为true,如果有整除,赋值为false,最后根据返回值是否为真,决定是不是素数.思想没错,从2到x-1除,如果有一个除尽,直接结束循环,赋值为false但是你最后就不能再循环外赋值了,否则循环过程即使都没有除尽,应该是素数,返回ture你最后不管前面,再来个shusu=false,就把返回值赋值false而不管前面的计算结果.所以有误.删除那句就行了,flag这个变量多余,shusu本身就是boolean啊看下面的Private Function shusu(x As Integer) As Booleanshusu= True For i = 2 To x - 1
If x Mod i = 0 Then
shusu= False
Exit For
End If Next i''删除这一句shusu = FalseEnd Function |