|

楼主 |
发表于 2020-8-15 12:08
|
显示全部楼层
本帖最后由 ysr 于 2020-8-15 04:11 编辑
验证能产生连续素数项的多项式的结果及程序:
以5与401之间的素数开头最多有40个连续素数:
/5/7/11/17
13
/17/19/23/29/37/47/59/73/89/107/127/149/173/199/227/257
29
37
/41/43/47/53/61/71/83/97/113/131/151/173/197/223/251/281/313/347/383/421
/461/503/547/593/641/691/743/797/853/911/971/1033/1097/1163/1231/1301/1373/1447/1523/1601
53
61
73
89
97
/101/103/107/113
109
113
137
149
157
173
181
193
197
229
233
241
257
269
277
281
293
313
317
337
349
353
373
389
397
401
程序代码如下:
Private Sub Command1_Click()
Dim a, b
a = Val(Text1) * 4 + 1
a1 = a
Q = Val(Text2) * 4 + 1
m = Sqr(Q)
If Right(a, 1) Mod 2 = 0 Then
a = a + 1
Else
a = a
End If
Do While InStr(fenjieyinzi0(Val(a)), "*") <> 0
a = a + 4
Loop
Do While a <= Q
b = a + s2
d = fenjieyinzi0(Val(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)
b = a + s2
d = fenjieyinzi0(Val(b))
Loop
If s > 2 Then
Text3 = Text3 & s3 & vbCrLf
ElseIf InStr(fenjieyinzi0(Val(a)), "*") = 0 Then
Text3 = Text3 & a & vbCrLf
End If
s5 = s5 & "/" & s
Print s5
a = a + 4
s2 = 0
Loop
s6 = Mid(s5, 2)
s7 = max(Trim(s6))
Combo1 = a1 & "与" & Q & "之间素数开头最多有" & 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 |
|