Sub IsPrimenum(byval a As Integer)
成都地区优秀IDC服务器托管提供商(成都创新互联公司).为客户提供专业的成都服务器托管,四川各地服务器托管,成都服务器托管、多线服务器托管.托管咨询专线:18982081108
Dim b As Integer
For b = 2 To (a - 1)
If a Mod b = 0 Then
MsgBox( "这不是质数")
Else
MsgBox( "这是质数")
End If
Next
End Sub
‘这个是可以选择范围的查找
Public Class Form1
'一个大于1的自然数,除了1和它本身外,不能被整除以其他自然数(质数),换句话说就是该数除了1和它本身以外不再有其他的因数
' 章鱼哥 3107073263
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim PD As Boolean = True
TextBox1.Clear() '首先清空文本框,这里面将放置符合条件的素数
If NumericUpDown1.Value NumericUpDown2.Value Then '从小到大
For i = NumericUpDown1.Value To NumericUpDown2.Value '循坏判断所有数
For j = 2 To i - 1 '内循环是除了1和它本身的
If i Mod j = 0 Then '判断是否能被除了1和自身以为的 比自身小的数整除
PD = False '如果能被整除,将PD 设置为False
Exit For '退出里层For 循环
Else
PD = True
End If
Next
If PD Then '如果PD为True ,则为素数
TextBox1.Text = i " "
End If
Next
End If
End Sub
End Class
主要是以下语句有问题:
Exit Do: Text2 = Str(a) "是素数"
Exit Do是退出Do-While循环,既然已经退出了,就不会执行后面的Text2 = Str(a) "是素数"了。
Do While 1
a = a + 1
For n = 2 To Sqr(a)
If a Mod n = 0 Then Exit For
Next n
If n Sqr(a) Then
Exit Do:
End If
Loop
Text2 = Str(a) "是素数"
这是我的参考代码(用VB.NET编写,改为VB,可能有小错误,我这儿没有VB 6环境):
Private Sub Command1_Click()
Dim a As Integer
a = Val(TextBox1)
If IsPrimeNumber(a) = True Then
TextBox2 = Str(a) "是素数"
Return
End If
Do While 1
a = a + 1
If IsPrimeNumber(a) = True Then
Exit Do
End If
Loop
TextBox2 = Str(a) "是素数"
End Sub
'判断一个整数是否是素数,若是素数返回true,否则返回false
Private Function IsPrimeNumber(ByVal num As Integer) As Boolean
Dim i, k As Integer
k = Sqr(num)
For i = 2 To k
If num Mod i = 0 Then
Exit For
End If
Next
If i k Then
Return True '是"素数"
End If
Return False '是"非素数"
End Function