|

楼主 |
发表于 2020-8-17 13:51
|
显示全部楼层
改进了一下求4生素数的程序,如下为程序结果和代码:
1与10000之间有由间距为34的2对孪生素数组成的10组4生素数对:
/5/7/41/43
/71/73/107/109
/101/103/137/139
/191/193/227/229
/311/313/347/349
/821/823/857/859
/1451/1453/1487/1489
/4091/4093/4127/4129
/4481/4483/4517/4519
/4931/4933/4967/4969.
我已经证明这样的4生素数有无穷多,从而再一次证明孪生素数有无穷多。
程序代码如下:
(仅发主程序)
Private Sub Command1_Click()
Dim a, b
a = Val(Text1)
a1 = a
Q = Val(Text2)
m = Sqr(Q)
If Right(a, 1) Mod 2 = 0 Then
a = a + 1
Else
a = a
End If
s = 0
a2 = a
Do While a2 <= m
B1 = a2
b2 = B1 + 2
b3 = b2 + 34
b4 = b3 + 2
c1 = fenjieyinzi0(Val(B1))
C2 = fenjieyinzi0(Val(b2))
c3 = fenjieyinzi0(Val(b3))
D1 = fenjieyinzi0(Val(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 + 2
Loop
a2 = a2
s1 = s
Do While a2 * 2 + 23 <= Q
B1 = a2
b2 = B1 + 2
b3 = b2 + 34
b4 = b3 + 2
c1 = fenjieyinzi0(Val(B1))
C2 = fenjieyinzi0(Val(b2))
c3 = fenjieyinzi0(Val(b3))
D1 = fenjieyinzi0(Val(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 + 2
Loop
Combo1 = a1 & "与" & Q & "之间有由间距为" & b3 - b2 & "的2对孪生素数组成的" & s1 & "组4生素数对:" & vbCrLf & Text3
End Sub
Private Sub Command2_Click()
Text1 = ""
Text2 = ""
Text3 = ""
Combo1 = ""
Form1.Cls
End Sub
|
|