一道VB题目,求各位会的大哥帮忙做下(填空题)

来源:百度知道 编辑:UC知道 时间:2024/05/27 09:15:36
运行如下程序,单击Command1,在list1中显示200以内的孪生素数,单击command2,在list1中显示四位正整数中的超级素数。(所谓孪生素数就是指差为2的素数对,如3和5,5和7,11和13等都是孪生素数,所谓超级素数是指当一个素数从低位到高位一次去掉一位数后剩下的数仍然是素数。)

Option Explicit
Private Sub Command1_Click()
Dim i As Integer
For i = 3 To 200
If prime(i) And prime(i + 2) Then
___________
End If
Next i
End Sub

Private Sub Command2_Click()
Dim i As Integer, flg As Boolean
Label1.Caption = "超级素数"
List1.Clear
For i = 1001 To 9999
Call sup_prime(i, flg)
If ___________ Then
List1.AddItem i
End If
Next i
End Sub

Private Function prime(x As Integer) As Boolean
Dim i As Integer
For i = 2 To Sqr(x)
If x Mod i = 0 Then
Exit Function
End If
Next i
prime = True
End Function
Private Sub sup_prime(___________, flg As Boolean)
flg = True
Do While n > 0
If prime(n) Then

请和你原来的代码比对一下:

Option Explicit
Private Sub Command1_Click()
Dim i As Integer
For i = 3 To 200
If prime(i) And prime(i + 2) Then
List1.AddItem i & " " & i + 2 '注释:列出孪生素数,两个数用空格分开
End If
Next i
End Sub

Private Sub Command2_Click()
Dim i As Integer, flg As Boolean
Label1.Caption = "超级素数"
List1.Clear
For i = 1001 To 9999
Call sup_prime(i, flg)
If i > 1999 And flg = True Then '注释:如果把1当素数,则这里只需填写flg=True即可,否则,要把1000-1999这些数排除。我们以前是把1排除的
List1.AddItem i
End If
Next i
End Sub

Private Function prime(x As Integer) As Boolean
Dim i As Integer
For i = 2 To Sqr(x)
If x Mod i = 0 Then
Exit Function
End If
Next i
prime = True
End Function
Private Sub sup_prime(ByVal n As Integer, flg As Boolean) '注释:n只能传值,所以必须要ByVal
flg = True
Do While n > 0
If prime(n) Then
n = n \ 10