|

楼主 |
发表于 2022-8-30 11:15
|
显示全部楼层
恢复原来的代码,虽然可能会漏掉个别解,但速度快概率高,可能效果好一点:
Private Sub Command1_Click() '求由1个素数和孪生素数对组成的3生素数组的程序
Dim A, B
A = Val(Text1)
a1 = A
q = Val(Text2)
ts = Timer
m = Sqr(q)
t = Trim(Text4)
a12 = A \ 6
A = Val(a12) * 6 + 1
s = 0
a2 = A
Do While a2 <= m
Do While InStr(fenjieyinzi0(Trim(a2)), "*") > 0
a2 = a2 + 6
Loop
b2 = a2
b3 = MPC1(Trim(b2), Trim(t))
b4 = MPC1(Trim(b3), 2)
c3 = fenjieyinzi0(Trim(b3))
D1 = fenjieyinzi0(Trim(b4))
If InStr(C1, "*") = 0 And InStr(D1, "*") = 0 And InStr(C2, "*") = 0 And InStr(c3, "*") = 0 Then
s = s + 1
Print B1, b2, b3, b4
Text3 = Text3 & "/" & B1 & "/" & b2 & "/" & b3 & "/" & b4 & vbCrLf
Else
s = s
End If
a2 = a2 + 6
Loop
a2 = a2
s1 = s
Do While a2 <= q
Do While InStr(fenjieyinzi0(Trim(a2)), "*") > 0
a2 = a2 + 6
Loop
b2 = a2
b3 = MPC1(Trim(b2), Trim(t))
b4 = MPC1(Trim(b3), 2)
c3 = fenjieyinzi0(Trim(b3))
D1 = fenjieyinzi0(Trim(b4))
If InStr(C1, "*") = 0 And InStr(D1, "*") = 0 And InStr(C2, "*") = 0 And InStr(c3, "*") = 0 Then
s1 = s1 + 1
Print B1, b2, b3, b4
Text3 = Text3 & "/" & B1 & "/" & b2 & "/" & b3 & "/" & b4 & vbCrLf
Else
s1 = s1
End If
a2 = a2 + 6
Loop
Combo1 = a1 & "与" & q & "之间的整数打头有" & s1 & "组差为" & t & "和2的素数加孪生素数对: (用时" & Timer - ts & "秒)" & vbCrLf & Text3
End Sub
Private Sub Command2_Click()
Text1 = ""
Text2 = ""
Text3 = ""
Text4 = ""
Combo1 = ""
Form1.Cls
End Sub |
|