|
代码如下:(明天再验证其他不同的偶数)
Private Sub Command1_Click()
'研究某数蔡氏素数的程序
Dim a, b
a = Val(Text1)
a1 = a
q = Val(Text2)
m = Val(30)
If Right(a, 1) Mod 2 = 0 Then
a = a + 1
Else
a = a
End If
s = 0
Do While m <= q
Do While a < Val(m)
Do While InStr(fenjieyinzi0(Val(a)), "*") > 0
a = a + 2
Loop
m1 = m + 30: m2 = m1 + 30
p1 = a
p2 = Val(m - p1)
p3 = Val(m1 - p1)
p4 = Val(m2 - p1)
Print p1, p2, p3, p4
If Val(p2) > 0 And InStr(fenjieyinzi0(Val(p1)), "*") = 0 And InStr(fenjieyinzi0(Val(p2)), "*") = 0 And InStr(fenjieyinzi0(Val(p3)), "*") = 0 Or InStr(fenjieyinzi0(Val(p4)), "*") = 0 Then
Text3 = Text3 & "m=p1+p2=" & m & "m1=p1+p3=" & m1 & "m2=p1+p4=" & m2 & "p1=" & p1 & "p2=" & p2 & "p3=" & p3 & "p4=" & p4 & vbCrLf
s = s + 1
s103 = s103 & m & "/"
Else
m = m
End If
a = a + 2
Loop
m = Val(m + 2)
a = 3
Loop
s103 = Mid(s103, 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
n = n + 1
ReDim Preserve cr(1 To n)
m = Val(ak(k))
f(m) = ""
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 '显示数组
s106 = Split(s104, "/")
j2 = UBound(s106)
Text4 = q & "内的不同偶数组(首项的偶数)" & s104
Combo1 = q & "内有" & s & "组蔡氏偶数分拆有" & Val(j2 - 1) & "组不同的偶数" & Text3
End Sub |
|