|

楼主 |
发表于 2020-8-25 15:24
|
显示全部楼层
本帖最后由 ysr 于 2020-8-30 15:35 编辑
代码如下:
Private Sub Command1_Click()
Dim a, b
a = Trim(Text1)
a1 = a
Q = Trim(Text2)
If Right(a, 1) Mod 2 = 0 Then
a = MPC1(Trim(a), 1)
Else
a = a
End If
Do While InStr(fenjieyinzi0(Trim(a)), "*") <> 0
If MBJC(Trim(a), "10000000000") < 0 Then
a = a + 2
Else
a = MPC1(Trim(a), 2)
End If
Loop
If MBJC(Trim(a), "100000000000000") < 0 Then
s101 = Int((Val(a - 11) * 4) ^ (1 / 4))
Else
a11 = MbC(MPC(Trim(a), "11"), 4)
s102 = zhengchuqy(MBBC(Trim(a11)))
s101 = zhengchuqy(MBBC(Trim(s102)))
End If
Do While MBJC(Trim(a), Trim(Q)) < 0
If MBJC(Trim(a), "1000000") Then
b = a + s2
Else
b = MPC1(Trim(a), Trim(s2))
End If
d = fenjieyinzi0(Trim(b))
s = 0
s3 = ""
Do While s < 40 And InStr(d, "*") = 0
s4 = s + 1
If s4 Mod 20 = 0 Then
s3 = s3 & "/" & b & vbCrLf
Else
s3 = s3 & "/" & b
End If
s = s + 1
s2 = s * (s + 1)
If MBJC(Trim(a), "1000000000") < 0 Then
b = a + s2
Else
b = MPC1(Trim(a), Trim(s2))
End If
d = fenjieyinzi0(Trim(b))
Loop
If s > 2 Then
Text3 = Text3 & s3 & vbCrLf
ElseIf InStr(fenjieyinzi0(Trim(a)), "*") = 0 Then
Text3 = Text3 & a & vbCrLf
End If
If s > 1 Then
s5 = s5 & "/" & s
Else
s5 = s5
End If
Print s5
Print s101
s101 = MPC1(Trim(s101), 1)
Print s101
If s101 < 1000 Then
a = 11 + (s101 - 1) * s101 * (s101 + 1) * (s101 + 2) / 4
Else
b5 = MbC(Val(s101 - 1), Val(s101)): b6 = MbC(Val(s101 + 1), Val(s101 + 2))
Print b5, b6
a = MPC1(zhengchuqy(MCC1(MbC(Trim(b5), Trim(b6)), 4)), 11)
End If
s2 = 0
Loop
s6 = Mid(s5, 2)
s7 = max(Trim(s6))
Combo1 = a1 & "与" & Q & "之间的数列11+(n-1)n(n+1)(n+2)/4,(n>=2.)的素数开头最多有" & s7 & "个连续素数:" & vbCrLf & Text3
Text4 = s5
End Sub
Private Sub Command2_Click()
Text1 = ""
Text2 = ""
Text3 = ""
Combo1 = ""
Form1.Cls
End Sub
Private Function max(ByVal lists As String) As String
Dim temp As Long
Dim a() As String
a = Split(lists, "/")
Dim b As Long
For b = 0 To UBound(a)
If temp < a(b) Then temp = a(b)
Next
max = temp
End Function |
|