|
楼主 |
发表于 2022-5-27 21:32
|
显示全部楼层
Private Sub Command1_Click()
Dim a, B, q
Dim t As Double
t = Timer
q = Val(Text1)
m = 10001
Do While m <= 10101
p1 = 3
Do While p1 <= q And p1 <= m
p2 = Abs(Val((p1 - m) / 2))
p3 = Abs(Val(2 * p2 - 105))
p4 = Abs(Val(2 * p2 - 15))
p5 = Val(2 * p2 + 15)
p6 = Val(2 * p2 + 105)
a = fenjieyinzi(Val(p1))
B = fenjieyinzi(Val(p2))
c = fenjieyinzi(Val(p3))
d = fenjieyinzi(Val(p4))
f1 = fenjieyinzi(Val(p5))
g = fenjieyinzi(Val(p6))
If InStr(a, "*") = 0 And InStr(B, "*") = 0 And InStr(c, "*") = 0 And InStr(d, "*") = 0 And InStr(f1, "*") = 0 And InStr(g, "*") = 0 Then
s = s + 1
Print p1, p2, p3, p4
s101 = s101 & "/" & m
Else
s = s
End If
p1 = Val(p1 + 2)
Loop
m = Val(m + 2)
Loop
s103 = Mid(s101, 1)
Dim i As Integer
Dim ak(), s105, cr(), f
Set f = CreateObject("Scripting.Dictionary")
s105 = Split(s103, "/")
j1 = UBound(s105)
Print j1
For k = 1 To j1
n1 = n1 + 1
ReDim Preserve ak(1 To n1)
ak(n1) = s105(n1)
Next
Print ak(1)
n = 0
For k = 1 To j1
For i = 1 To j1
n = n + 1
ReDim Preserve cr(1 To n)
m = Val(ak(k))
f(m) = ""
Next
Next
n = 0
m = f.Keys
For i = 0 To f.Count - 1
ReDim Preserve cr(1 To i + 1)
cr(i + 1) = m(i)
Next
For i = 1 To UBound(cr) - 1
For j = i + 1 To UBound(cr)
If cr(i) > cr(j) Then
temp = cr(j)
cr(j) = cr(i)
cr(i) = temp 'c数组是排序好的
End If
Next j
' If i Mod 20 = 0 Then
' s104 = s104 & temp & "/" & vbCrLf
' Else
' s104 = s104 & temp & "/"
' End If
Next i
For i = 1 To UBound(cr)
If i Mod 20 = 0 Then
s104 = s104 & cr(i) & "/" & vbCrLf
Else
s104 = s104 & cr(i) & "/"
End If
Next
Print temp
MsgBox "ok"
MsgBox s104 '显示数组
Text2 = s104
Combo1 = q & "内有" & s & "组蔡氏素数:" & vbCrLf & Text2 & "用时" & Timer - t & "秒"
End Sub |
|