数学中国

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
楼主: ysr

高手编的快速计算16(1.6×10^9)亿内孪生素数的程序

[复制链接]
 楼主| 发表于 2026-9-21 22:09 | 显示全部楼层
Private Sub Command1_Click()
Dim A, B, c
A = Val(Text1)
B = Val(Text2)
If Right(A, 1) Mod 2 = 0 Then
A = A
Else
A = Val(A + 1)
End If

a1 = A
Do While a1 <= B
c = fenjieyinzi1(Val(a1))
c2 = fenjieyinzi2(Val(a1))
g = Mid(c, InStr(c, "=") + 1)
lg = Mid(c2, InStr(c2, "=") + 1)
lg = Int(Mid(lg, 1, InStr(lg, "而") - 1))
c3 = Mid(c2, InStr(c2, "为") + 1, InStr(c2, ">") - 1)
m = Val(c3)
ls = fenjieyinzi3(Val(a1))
c1 = c1 & c & " /差为" & Val(g - lg) & "/" & c2 & vbCrLf & "实际区间平均值G/(m-1)为" & Val(g) / (Val(m) - 1) & vbCrLf & ls

a1 = a1 + 2
Loop
Text3 = c1
jc = "(如下文字和数据中的小于<和大于>是代表尖括号,其中的斜杠/只有在“LG/(m-1)”中间的斜杠/是除号,其他都是间隔号)" & vbCrLf
Combo1 = jc & "偶数/ 方根/  GM/  G/差 G-LG/ 偶数/  P/ m/ <LG/(m-1)区间理论平均值>/ LG" & vbCrLf & c1
End Sub

Private Sub Command2_Click()
Text1 = ""
Text2 = ""
Text3 = ""
Combo1 = ""
End Sub
Private Function fenjieyinzi(sa As String) As String
Dim x, A, B, k As String
A = Val(sa)

x = 3
If A <= 1 Or A > Int(A) Then
If A = 1 Then
fenjieyinzi = "它既不是质数,也不是合数"

Else
MsgBox "error"
End If
  
Else

Do While A / 2 = Int(A / 2) And A >= 4
  
If B = 0 Then
fenjieyinzi = fenjieyinzi & "2"
B = 1
Else
fenjieyinzi = fenjieyinzi & "*2"
End If
A = A / 2
k = A
  
Loop

Do While A > 1
Do While x <= Sqr(A)
Do While A / x = Int(A / x) And A >= x * x
  
If B = 0 Then
fenjieyinzi = fenjieyinzi & x
B = 1
Else
fenjieyinzi = fenjieyinzi & "*" & x
End If
A = A / x
Loop
  
x = x + 2
Loop
  
k = A
A = 1
Loop
  
If B = 1 Then
fenjieyinzi = fenjieyinzi & "*" & k
Else
fenjieyinzi = "这是一个质数"
End If
  
End If

End Function
Private Function fenjieyinzi1(sa As String) As String
Dim A, B
A = Val(sa)
m = Sqr(A)
a1 = 3
s = 0
Do While a1 <= m
B = A - a1
c = fenjieyinzi(Val(a1))
d = fenjieyinzi(Val(B))
If InStr(c, "*") = 0 And InStr(d, "*") = 0 Then
s = s + 1
Print a1, "+", B
'ls2 = ls2 & CStr(a1) & "+ " & CStr(b) & vbCrLf
Else
s = s
End If
a1 = a1 + 2
Loop
a2 = a1
s1 = s
Do While a2 <= A / 2
b1 = A - a2
c1 = fenjieyinzi(Val(a2))
d1 = fenjieyinzi(Val(b1))

If InStr(c1, "*") = 0 And InStr(d1, "*") = 0 Then
s1 = s1 + 1
Print a2, "+", b1
'ls2 = ls2 & CStr(a2) & "+ " & CStr(b1) & vbCrLf
Else
s1 = s1
End If
a2 = a2 + 2

Loop
fenjieyinzi1 = A & "/方根" & m & "/GM是" & s & " / G=" & s1
End Function
Private Function fenjieyinzi2(sa As String) As String
Dim A, B
A = Val(sa)
m = Sqr(A)
m1 = Int(m)
a2 = m1
a1 = 3
s = 1
B = 1
Do While a2 <= m And InStr(fenjieyinzi(Val(a2)), "*") <> 0
a2 = a2 - 1
Loop
Do While a1 <= a2
c = fenjieyinzi(Val(a1))
If InStr(Trim(c), "*") = 0 Then
s = s + 1
B = B * Val(1 - 2 / a1)
Else
s = s
End If
a1 = a1 + 2
Loop
b2 = (a2 ^ 2 / 4) * B
b1 = (A / 4) * B
s1 = s
Do While a1 <= 4 * a2
c = fenjieyinzi(Val(a1))
If InStr(Trim(c), "*") = 0 Then
s1 = s1 + 1
B = B * Val(1 - 2 / a1)
Else
s1 = s1
End If


a1 = a1 + 2
Loop
b3 = (A / 4) * B
If s = 1 Then

fenjieyinzi2 = "  /" & A & " /" & a2 & " /m为" & s & ">  区间的理论平均值LG/(m-1)为" & b2 / s - 1 & "  LG=" & b1 & "而CLG是" & b3
Else
fenjieyinzi2 = " /" & A & " /" & a2 & " /<m为" & s & ">  区间的理论平均值LG/(m-1)为" & b2 / (s - 1) & "  LG=" & b1 & "而CLG是" & b3
End If


End Function

Private Function fenjieyinzi3(sa As String) As String
Dim A, B
A = Val(sa)
m = Sqr(A)
a1 = 3
s = 0
Do While a1 <= m
B = A - a1
c = fenjieyinzi(Val(a1))
d = fenjieyinzi(Val(B))
If InStr(c, "*") = 0 And InStr(d, "*") = 0 Then
s = s + 1
Print a1, "+", B
ls2 = ls2 & CStr(a1) & "+ " & CStr(B) & vbCrLf
Else
s = s
End If
a1 = a1 + 2
Loop
a2 = a1
s1 = s
Do While a2 <= A / 2
b1 = A - a2
c1 = fenjieyinzi(Val(a2))
d1 = fenjieyinzi(Val(b1))

If InStr(c1, "*") = 0 And InStr(d1, "*") = 0 Then
s1 = s1 + 1
Print a2, "+", b1
ls2 = ls2 & CStr(a2) & "+ " & CStr(b1) & vbCrLf
Else
s1 = s1
End If
a2 = a2 + 2

Loop
fenjieyinzi3 = ls2
End Function
回复 支持 反对

使用道具 举报

 楼主| 发表于 2026-9-22 19:54 | 显示全部楼层
(如下文字和数据中的小于<和大于>是代表尖括号,其中的斜杠/只有在“LG/(m-1)”中间的斜杠/是除号,其他都是间隔号)
偶数/ 方根/  GM/  G/差 G-LG/ 偶数/  P/ m/ <LG/(m-1)区间理论平均值>/ LG
63274/方根251.543236840111/GM是0 / G=441 /差为21/ /63274 /251 /<m为54>  区间的理论平均值LG/(m-1)为7.90762300410887  LG=420.920107807578而CLG是273.859851204138
实际区间平均值G/(m-1)为8.32075471698113
小根拆:
63276/方根251.547212268393/GM是9 / G=816 /差为396/ /63276 /251 /<m为54>  区间的理论平均值LG/(m-1)为7.90762300410887  LG=420.933412485891而CLG是273.868507519566
实际区间平均值G/(m-1)为15.3962264150943
小根拆:
29+ 63247
79+ 63197
97+ 63179
127+ 63149
149+ 63127
163+ 63113
173+ 63103
179+ 63097
197+ 63079
63278/方根251.551187633849/GM是8 / G=422 /差为2/ /63278 /251 /<m为54>  区间的理论平均值LG/(m-1)为7.90762300410887  LG=420.946717164205而CLG是273.877163834994
实际区间平均值G/(m-1)为7.9622641509434
小根拆:
31+ 63247
37+ 63241
67+ 63211
79+ 63199
151+ 63127
181+ 63097
199+ 63079
211+ 63067
63280/方根251.555162936482/GM是7 / G=676 /差为256/ /63280 /251 /<m为54>  区间的理论平均值LG/(m-1)为7.90762300410887  LG=420.960021842518而CLG是273.885820150423
实际区间平均值G/(m-1)为12.7547169811321
小根拆:
3+ 63277
83+ 63197
101+ 63179
131+ 63149
149+ 63131
167+ 63113
251+ 63029
63282/方根251.559138176294/GM是9 / G=855 /差为435/ /63282 /251 /<m为54>  区间的理论平均值LG/(m-1)为7.90762300410887  LG=420.973326520832而CLG是273.894476465851
实际区间平均值G/(m-1)为16.1320754716981
小根拆:
5+ 63277
41+ 63241
71+ 63211
83+ 63199
103+ 63179
151+ 63131
179+ 63103
223+ 63059
251+ 63031
回复 支持 反对

使用道具 举报

 楼主| 发表于 2026-9-22 19:56 | 显示全部楼层
Private Sub Command1_Click()
Dim A, B, c
A = Val(Text1)
B = Val(Text2)
If Right(A, 1) Mod 2 = 0 Then
A = A
Else
A = Val(A + 1)
End If

a1 = A
Do While a1 <= B
c = fenjieyinzi1(Val(a1))
c2 = fenjieyinzi2(Val(a1))
g = Mid(c, InStr(c, "=") + 1)
lg = Mid(c2, InStr(c2, "=") + 1)
lg = Int(Mid(lg, 1, InStr(lg, "而") - 1))
c3 = Mid(c2, InStr(c2, "为") + 1, InStr(c2, ">") - 1)
m = Val(c3)
ls = fenjieyinzi3(Val(a1))
c1 = c1 & c & " /差为" & Val(g - lg) & "/" & c2 & vbCrLf & "实际区间平均值G/(m-1)为" & Val(g) / (Val(m) - 1) & vbCrLf & "小根拆:" & vbCrLf & ls

a1 = a1 + 2
Loop
Text3 = c1
jc = "(如下文字和数据中的小于<和大于>是代表尖括号,其中的斜杠/只有在“LG/(m-1)”中间的斜杠/是除号,其他都是间隔号)" & vbCrLf
Combo1 = jc & "偶数/ 方根/  GM/  G/差 G-LG/ 偶数/  P/ m/ <LG/(m-1)区间理论平均值>/ LG" & vbCrLf & c1
End Sub

Private Sub Command2_Click()
Text1 = ""
Text2 = ""
Text3 = ""
Combo1 = ""
End Sub
Private Function fenjieyinzi(sa As String) As String
Dim x, A, B, k As String
A = Val(sa)

x = 3
If A <= 1 Or A > Int(A) Then
If A = 1 Then
fenjieyinzi = "它既不是质数,也不是合数"

Else
MsgBox "error"
End If
  
Else

Do While A / 2 = Int(A / 2) And A >= 4
  
If B = 0 Then
fenjieyinzi = fenjieyinzi & "2"
B = 1
Else
fenjieyinzi = fenjieyinzi & "*2"
End If
A = A / 2
k = A
  
Loop

Do While A > 1
Do While x <= Sqr(A)
Do While A / x = Int(A / x) And A >= x * x
  
If B = 0 Then
fenjieyinzi = fenjieyinzi & x
B = 1
Else
fenjieyinzi = fenjieyinzi & "*" & x
End If
A = A / x
Loop
  
x = x + 2
Loop
  
k = A
A = 1
Loop
  
If B = 1 Then
fenjieyinzi = fenjieyinzi & "*" & k
Else
fenjieyinzi = "这是一个质数"
End If
  
End If

End Function
Private Function fenjieyinzi1(sa As String) As String
Dim A, B
A = Val(sa)
m = Sqr(A)
a1 = 3
s = 0
Do While a1 <= m
B = A - a1
c = fenjieyinzi(Val(a1))
d = fenjieyinzi(Val(B))
If InStr(c, "*") = 0 And InStr(d, "*") = 0 Then
s = s + 1
Print a1, "+", B
'ls2 = ls2 & CStr(a1) & "+ " & CStr(b) & vbCrLf
Else
s = s
End If
a1 = a1 + 2
Loop
a2 = a1
s1 = s
Do While a2 <= A / 2
b1 = A - a2
c1 = fenjieyinzi(Val(a2))
d1 = fenjieyinzi(Val(b1))

If InStr(c1, "*") = 0 And InStr(d1, "*") = 0 Then
s1 = s1 + 1
Print a2, "+", b1
'ls2 = ls2 & CStr(a2) & "+ " & CStr(b1) & vbCrLf
Else
s1 = s1
End If
a2 = a2 + 2

Loop
fenjieyinzi1 = A & "/方根" & m & "/GM是" & s & " / G=" & s1
End Function
Private Function fenjieyinzi2(sa As String) As String
Dim A, B
A = Val(sa)
m = Sqr(A)
m1 = Int(m)
a2 = m1
a1 = 3
s = 1
B = 1
Do While a2 <= m And InStr(fenjieyinzi(Val(a2)), "*") <> 0
a2 = a2 - 1
Loop
Do While a1 <= a2
c = fenjieyinzi(Val(a1))
If InStr(Trim(c), "*") = 0 Then
s = s + 1
B = B * Val(1 - 2 / a1)
Else
s = s
End If
a1 = a1 + 2
Loop
b2 = (a2 ^ 2 / 4) * B
b1 = (A / 4) * B
s1 = s
Do While a1 <= 4 * a2
c = fenjieyinzi(Val(a1))
If InStr(Trim(c), "*") = 0 Then
s1 = s1 + 1
B = B * Val(1 - 2 / a1)
Else
s1 = s1
End If


a1 = a1 + 2
Loop
b3 = (A / 4) * B
If s = 1 Then

fenjieyinzi2 = "  /" & A & " /" & a2 & " /m为" & s & ">  区间的理论平均值LG/(m-1)为" & b2 / s - 1 & "  LG=" & b1 & "而CLG是" & b3
Else
fenjieyinzi2 = " /" & A & " /" & a2 & " /<m为" & s & ">  区间的理论平均值LG/(m-1)为" & b2 / (s - 1) & "  LG=" & b1 & "而CLG是" & b3
End If


End Function

Private Function fenjieyinzi3(sa As String) As String
Dim A, B
A = Val(sa)
m = Sqr(A)
a1 = 3
s = 0
Do While a1 <= m
B = A - a1
c = fenjieyinzi(Val(a1))
d = fenjieyinzi(Val(B))
If InStr(c, "*") = 0 And InStr(d, "*") = 0 Then
s = s + 1
Print a1, "+", B
ls2 = ls2 & CStr(a1) & "+ " & CStr(B) & vbCrLf
Else
s = s
End If
a1 = a1 + 2
Loop
a2 = a1
s1 = s
Do While a2 <= A / 2
b1 = A - a2
c1 = fenjieyinzi(Val(a2))
d1 = fenjieyinzi(Val(b1))

If InStr(c1, "*") = 0 And InStr(d1, "*") = 0 Then
s1 = s1 + 1
Print a2, "+", b1
'ls2 = ls2 & CStr(a2) & "+ " & CStr(b1) & vbCrLf
Else
s1 = s1
End If
a2 = a2 + 2

Loop
fenjieyinzi3 = ls2
End Function
回复 支持 反对

使用道具 举报

 楼主| 发表于 2026-9-23 03:13 | 显示全部楼层
(如下文字和数据中的小于<和大于>是代表尖括号,其中的斜杠/只有在“LG/(m-1)”中间的斜杠/是除号,其他都是间隔号)
偶数/ 方根/  GM/  G/差 G-LG/ 偶数/  P/ m/ <LG/(m-1)区间理论平均值>/ LG
284/方根16.8522995463527/GM是3 / G=8 /差为1/ /284 /13 /<m为6>  区间的理论平均值LG/(m-1)为0.835714285714284  LG=7.02197802197801而CLG是3.62132731578037
实际区间平均值G/(m-1)为1.6
小根拆:
3+ 281
7+ 277
13+ 271
286/方根16.9115345252878/GM是2 / G=12 /差为5/ /286 /13 /<m为6>  区间的理论平均值LG/(m-1)为0.835714285714284  LG=7.07142857142856而CLG是3.64682962082108
实际区间平均值G/(m-1)为2.4
小根拆:
3+ 283
5+ 281
288/方根16.9705627484771/GM是3 / G=17 /差为10/ /288 /13 /<m为6>  区间的理论平均值LG/(m-1)为0.835714285714284  LG=7.12087912087911而CLG是3.67233192586178
实际区间平均值G/(m-1)为3.4
小根拆:
5+ 283
7+ 281
11+ 277
290/方根17.0293863659264/GM是2 / G=10 /差为4/ /290 /17 /<m为7>  区间的理论平均值LG/(m-1)为1.05082417582417  LG=6.32676147382029而CLG是3.22570999210649
实际区间平均值G/(m-1)为1.66666666666667
小根拆:
7+ 283
13+ 277
回复 支持 反对

使用道具 举报

 楼主| 发表于 2026-9-23 12:49 | 显示全部楼层
本帖最后由 ysr 于 2026-9-23 06:08 编辑

可以给出KLG即乘以波动因子的连乘积结果的代码如下(能不能运行还不知道)   :

Private Sub Command1_Click()
Dim a, b, c
a = Val(Text1)
b = Val(Text2)
If Right(a, 1) Mod 2 = 0 Then
a = a
Else
a = Val(a + 1)
End If

a1 = a
Do While a1 <= b
c = fenjieyinzi1(Val(a1))
c2 = fenjieyinzi2(Val(a1))
gl1 = (Val(a1)) ^ 0.5
g = Mid(c, InStr(c, "=") + 1)
sa = fenjieyinzi(Val(a1))
sa = "*" & Trim(sa)
sa = paixu1(Trim(sa))
k = paixu12(Trim(sa), Val(gl1))
lg = Mid(c2, InStr(c2, "=") + 1)
lg = Mid(lg, 1, InStr(lg, "而") - 1)
klg = Val(k) * Val(lg)
lg = Int(Val(lg))
c3 = Mid(c2, InStr(c2, "为") + 1, InStr(c2, ">") - 1)
m = Val(c3)
ls = fenjieyinzi3(Val(a1))
c1 = c1 & c & " /差为" & Val(g - lg) & "/" & c2 & vbCrLf & "实际区间平均值G/(m-1)为" & Val(g) / (Val(m) - 1) & "  KLG=" & klg & vbCrLf & "小根拆:" & vbCrLf & ls

a1 = a1 + 2
Loop
Text3 = c1
jc = "(如下文字和数据中的小于<和大于>是代表尖括号,其中的斜杠/只有在“LG/(m-1)”中间的斜杠/是除号,其他都是间隔号)" & vbCrLf
Combo1 = jc & "偶数/ 方根/  GM/  G/差 G-LG/ 偶数/  P/ m/ <LG/(m-1)区间理论平均值>/ LG" & vbCrLf & c1
End Sub

Private Sub Command2_Click()
Text1 = ""
Text2 = ""
Text3 = ""
Combo1 = ""
Form1.Cls
End Sub
Private Function fenjieyinzi(sa As String) As String
Dim x, a, b, k As String
a = Val(sa)

x = 3
If a <= 1 Or a > Int(a) Then
If a = 1 Then
fenjieyinzi = "它既不是质数,也不是合数"

Else
MsgBox "error"
End If
  
Else

Do While a / 2 = Int(a / 2) And a >= 4
  
If b = 0 Then
fenjieyinzi = fenjieyinzi & "2"
b = 1
Else
fenjieyinzi = fenjieyinzi & "*2"
End If
a = a / 2
k = a
  
Loop

Do While a > 1
Do While x <= Sqr(a)
Do While a / x = Int(a / x) And a >= x * x
  
If b = 0 Then
fenjieyinzi = fenjieyinzi & x
b = 1
Else
fenjieyinzi = fenjieyinzi & "*" & x
End If
a = a / x
Loop
  
x = x + 2
Loop
  
k = a
a = 1
Loop
  
If b = 1 Then
fenjieyinzi = fenjieyinzi & "*" & k
Else
fenjieyinzi = "这是一个质数"
End If
  
End If

End Function
Private Function fenjieyinzi1(sa As String) As String
Dim a, b
a = Val(sa)
m = Sqr(a)
a1 = 3
s = 0
Do While a1 <= m
b = a - a1
c = fenjieyinzi(Val(a1))
d = fenjieyinzi(Val(b))
If InStr(c, "*") = 0 And InStr(d, "*") = 0 Then
s = s + 1
Print a1, "+", b
'ls2 = ls2 & CStr(a1) & "+ " & CStr(b) & vbCrLf
Else
s = s
End If
a1 = a1 + 2
Loop
a2 = a1
s1 = s
Do While a2 <= a / 2
b1 = a - a2
c1 = fenjieyinzi(Val(a2))
d1 = fenjieyinzi(Val(b1))

If InStr(c1, "*") = 0 And InStr(d1, "*") = 0 Then
s1 = s1 + 1
Print a2, "+", b1
'ls2 = ls2 & CStr(a2) & "+ " & CStr(b1) & vbCrLf
Else
s1 = s1
End If
a2 = a2 + 2

Loop
fenjieyinzi1 = a & "/方根" & m & "/GM是" & s & " / G=" & s1
End Function
Private Function fenjieyinzi2(sa As String) As String
Dim a, b
a = Val(sa)
m = Sqr(a)
m1 = Int(m)
a2 = m1
a1 = 3
s = 1
b = 1
Do While a2 <= m And InStr(fenjieyinzi(Val(a2)), "*") <> 0
a2 = a2 - 1
Loop
Do While a1 <= a2
c = fenjieyinzi(Val(a1))
If InStr(Trim(c), "*") = 0 Then
s = s + 1
b = b * Val(1 - 2 / a1)
Else
s = s
End If
a1 = a1 + 2
Loop
b2 = (a2 ^ 2 / 4) * b
b1 = (a / 4) * b
s1 = s
Do While a1 <= 4 * a2
c = fenjieyinzi(Val(a1))
If InStr(Trim(c), "*") = 0 Then
s1 = s1 + 1
b = b * Val(1 - 2 / a1)
Else
s1 = s1
End If


a1 = a1 + 2
Loop
b3 = (a / 4) * b
If s = 1 Then

fenjieyinzi2 = "  /" & a & " /" & a2 & " /m为" & s & ">  区间的理论平均值LG/(m-1)为" & b2 / s - 1 & "  LG=" & b1 & "而CLG是" & b3
Else
fenjieyinzi2 = " /" & a & " /" & a2 & " /<m为" & s & ">  区间的理论平均值LG/(m-1)为" & b2 / (s - 1) & "  LG=" & b1 & "而CLG是" & b3
End If


End Function

Private Function fenjieyinzi3(sa As String) As String
Dim a, b
a = Val(sa)
m = Sqr(a)
a1 = 3
s = 0
Do While a1 <= m
b = a - a1
c = fenjieyinzi(Val(a1))
d = fenjieyinzi(Val(b))
If InStr(c, "*") = 0 And InStr(d, "*") = 0 Then
s = s + 1
Print a1, "+", b
ls2 = ls2 & CStr(a1) & "+ " & CStr(b) & vbCrLf
Else
s = s
End If
a1 = a1 + 2
Loop
a2 = a1
s1 = s
Do While a2 <= a / 2
b1 = a - a2
c1 = fenjieyinzi(Val(a2))
d1 = fenjieyinzi(Val(b1))

If InStr(c1, "*") = 0 And InStr(d1, "*") = 0 Then
s1 = s1 + 1
Print a2, "+", b1
'ls2 = ls2 & CStr(a2) & "+ " & CStr(b1) & vbCrLf
Else
s1 = s1
End If
a2 = a2 + 2

Loop
fenjieyinzi3 = ls2
End Function

Private Function paixu12(a As String, sb As String) As String
Dim i As Integer
Dim ak(), s105, cr(), k
s103 = a
Set f = CreateObject("Scripting.Dictionary")
s105 = Split(s103, "/")
   j1 = UBound(s105)
   Print j1
   k = 1
   For k1 = 1 To j1
      n1 = n1 + 1
       ReDim Preserve ak(1 To n1)
      ak(n1) = s105(n1)
      k2 = ak(n1)
      Print ak(n1)
     If k2 <> 2 And k2 < Val(sb) Then
     k = k * (k2 - 1) / (k2 - 2)
     Else
     k = k
     End If
    Next
    paixu12 = k
End Function
Private Function paixu1(a As String) As String
Dim i As Integer
Dim ak(), s105, cr(), f
s103 = a
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)
      Print ak(n1)
    Next
   
     
        For k = 1 To j1
           
             ReDim Preserve cr(1 To k)
            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  '显示数组
     paixu1 = s104
End Function
回复 支持 反对

使用道具 举报

 楼主| 发表于 2026-9-23 14:10 | 显示全部楼层
(如下文字和数据中的小于<和大于>是代表尖括号,其中的斜杠/只有在“LG/(m-1)”中间的斜杠/是除号,其他都是间隔号)
偶数/ 方根/  GM/  G/差 G-LG/ 偶数/  P/ m/ <LG/(m-1)区间理论平均值>/ LG
200/方根14.142135623731/GM是2 / G=8 /差为4/ /200 /13 /<m为6>  区间的理论平均值LG/(m-1)为0.835714285714284  LG=4.94505494505494而CLG是2.55023050407068
实际区间平均值G/(m-1)为1.6  KLG=6.59340659340657
小根拆:
3+ 197
7+ 193
202/方根14.2126704035519/GM是3 / G=9 /差为5/ /202 /13 /<m为6>  区间的理论平均值LG/(m-1)为0.835714285714284  LG=4.99450549450549而CLG是2.57573280911139
实际区间平均值G/(m-1)为1.8  KLG=4.99450549450549
小根拆:
3+ 199
5+ 197
11+ 191
204/方根14.2828568570857/GM是4 / G=14 /差为9/ /204 /13 /<m为6>  区间的理论平均值LG/(m-1)为0.835714285714284  LG=5.04395604395603而CLG是2.6012351141521
实际区间平均值G/(m-1)为2.8  KLG=10.0879120879121
小根拆:
5+ 199
7+ 197
11+ 193
13+ 191
206/方根14.3527000944073/GM是2 / G=7 /差为2/ /206 /13 /<m为6>  区间的理论平均值LG/(m-1)为0.835714285714284  LG=5.09340659340658而CLG是2.6267374191928
实际区间平均值G/(m-1)为1.4  KLG=5.09340659340658
小根拆:
7+ 199
13+ 193
208/方根14.422205101856/GM是1 / G=7 /差为2/ /208 /13 /<m为6>  区间的理论平均值LG/(m-1)为0.835714285714284  LG=5.14285714285713而CLG是2.65223972423351
实际区间平均值G/(m-1)为1.4  KLG=5.61038961038959
小根拆:
11+ 197
210/方根14.4913767461894/GM是2 / G=19 /差为14/ /210 /13 /<m为6>  区间的理论平均值LG/(m-1)为0.835714285714284  LG=5.19230769230768而CLG是2.67774202927422
实际区间平均值G/(m-1)为3.8  KLG=16.6153846153846
小根拆:
11+ 199
13+ 197
212/方根14.560219778561/GM是1 / G=6 /差为1/ /212 /13 /<m为6>  区间的理论平均值LG/(m-1)为0.835714285714284  LG=5.24175824175823而CLG是2.70324433431492
实际区间平均值G/(m-1)为1.2  KLG=5.24175824175823
小根拆:
13+ 199
214/方根14.6287388383278/GM是1 / G=8 /差为3/ /214 /13 /<m为6>  区间的理论平均值LG/(m-1)为0.835714285714284  LG=5.29120879120878而CLG是2.72874663935563
实际区间平均值G/(m-1)为1.6  KLG=5.29120879120878
小根拆:
3+ 211
216/方根14.6969384566991/GM是1 / G=13 /差为8/ /216 /13 /<m为6>  区间的理论平均值LG/(m-1)为0.835714285714284  LG=5.34065934065933而CLG是2.75424894439634
实际区间平均值G/(m-1)为2.6  KLG=10.6813186813187
小根拆:
5+ 211
回复 支持 反对

使用道具 举报

 楼主| 发表于 2026-9-23 14:15 | 显示全部楼层
(如下文字和数据中的小于<和大于>是代表尖括号,其中的斜杠/只有在“LG/(m-1)”中间的斜杠/是除号,其他都是间隔号)
偶数/ 方根/  GM/  G/差 G-LG/ 偶数/  P/ m/ <LG/(m-1)区间理论平均值>/ LG
218090/方根467.001070662584/GM是10 / G=1539 /差为364/ /218090 /467 /<m为91>  区间的理论平均值LG/(m-1)为13.0614716990477  LG=1175.53784306443而CLG是796.171830275771
实际区间平均值G/(m-1)为17.1  KLG=1589.7844930118
小根拆:
3+ 218087
7+ 218083
13+ 218077
43+ 218047
109+ 217981
157+ 217933
181+ 217909
241+ 217849
373+ 217717
409+ 217681
218092/方根467.003211980389/GM是16 / G=1351 /差为176/ /218092 /467 /<m为91>  区间的理论平均值LG/(m-1)为13.0614716990477  LG=1175.5486233647而CLG是796.179131590185
实际区间平均值G/(m-1)为15.0111111111111  KLG=1410.65834803764
小根拆:
5+ 218087
11+ 218081
23+ 218069
71+ 218021
89+ 218003
113+ 217979
191+ 217901
233+ 217859
263+ 217829
269+ 217823
311+ 217781
353+ 217739
359+ 217733
401+ 217691
431+ 217661
449+ 217643
218094/方根467.005353288375/GM是15 / G=2293 /差为1118/ /218094 /467 /<m为91>  区间的理论平均值LG/(m-1)为13.0614716990477  LG=1175.55940366497而CLG是796.186432904599
实际区间平均值G/(m-1)为25.4777777777778  KLG=2376.42665430465
小根拆:
7+ 218087
11+ 218083
13+ 218081
17+ 218077
47+ 218047
73+ 218021
113+ 217981
157+ 217937
193+ 217901
271+ 217823
313+ 217781
347+ 217747
367+ 217727
397+ 217697
433+ 217661
218096/方根467.007494586543/GM是7 / G=1152 /差为-23/ /218096 /467 /<m为91>  区间的理论平均值LG/(m-1)为13.0614716990477  LG=1175.57018396524而CLG是796.193734219013
实际区间平均值G/(m-1)为12.8  KLG=1208.06561994476
小根拆:
13+ 218083
19+ 218077
127+ 217969
163+ 217933
349+ 217747
379+ 217717
409+ 217687
218098/方根467.009635874893/GM是11 / G=1125 /差为-50/ /218098 /467 /<m为91>  区间的理论平均值LG/(m-1)为13.0614716990477  LG=1175.58096426551而CLG是796.201035533427
实际区间平均值G/(m-1)为12.5  KLG=1175.58096426551
小根拆:
11+ 218087
17+ 218081
29+ 218069
191+ 217907
197+ 217901
239+ 217859
269+ 217829
317+ 217781
359+ 217739
401+ 217697
431+ 217667
回复 支持 反对

使用道具 举报

 楼主| 发表于 2026-9-23 14:24 | 显示全部楼层
虽然波动性跟踪的很好,但是增加了许多解的个数大于实际的偶数,不过差值变小了而已。所以,该值只能是对波动性研究的参考,不能用于证明。
能用于证明的是绝对下限值,这是理论上的下限,是定理,大于等于4的偶数都成立的,是铁的事实。所以,哥德巴赫猜想远远成立。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2026-9-23 14:30 | 显示全部楼层
重新发一下这个程序,稍改动,去掉了过程中间弹出来的需要手动点击的窗口程序,代码如下:

Private Sub Command1_Click()
Dim a, b, c
a = Val(Text1)
b = Val(Text2)
If Right(a, 1) Mod 2 = 0 Then
a = a
Else
a = Val(a + 1)
End If

a1 = a
Do While a1 <= b
c = fenjieyinzi1(Val(a1))
c2 = fenjieyinzi2(Val(a1))
gl1 = (Val(a1)) ^ 0.5
g = Mid(c, InStr(c, "=") + 1)
sa = fenjieyinzi(Val(a1))
sa = "*" & Trim(sa)
sa = paixu1(Trim(sa))
k = paixu12(Trim(sa), Val(gl1))
lg = Mid(c2, InStr(c2, "=") + 1)
lg = Mid(lg, 1, InStr(lg, "而") - 1)
klg = Val(k) * Val(lg)
lg = Int(Val(lg))
c3 = Mid(c2, InStr(c2, "为") + 1, InStr(c2, ">") - 1)
m = Val(c3)
ls = fenjieyinzi3(Val(a1))
c1 = c1 & c & " /差为" & Val(g - lg) & "/" & c2 & vbCrLf & "实际区间平均值G/(m-1)为" & Val(g) / (Val(m) - 1) & "  KLG=" & klg & vbCrLf & "小根拆:" & vbCrLf & ls

a1 = a1 + 2
Loop
Text3 = c1
jc = "(如下文字和数据中的小于<和大于>是代表尖括号,其中的斜杠/只有在“LG/(m-1)”中间的斜杠/是除号,其他都是间隔号)" & vbCrLf
Combo1 = jc & "偶数/ 方根/  GM/  G/差 G-LG/ 偶数/  P/ m/ <LG/(m-1)区间理论平均值>/ LG" & vbCrLf & c1
End Sub

Private Sub Command2_Click()
Text1 = ""
Text2 = ""
Text3 = ""
Combo1 = ""
Form1.Cls
End Sub
Private Function fenjieyinzi(sa As String) As String
Dim x, a, b, k As String
a = Val(sa)

x = 3
If a <= 1 Or a > Int(a) Then
If a = 1 Then
fenjieyinzi = "它既不是质数,也不是合数"

Else
MsgBox "error"
End If
  
Else

Do While a / 2 = Int(a / 2) And a >= 4
  
If b = 0 Then
fenjieyinzi = fenjieyinzi & "2"
b = 1
Else
fenjieyinzi = fenjieyinzi & "*2"
End If
a = a / 2
k = a
  
Loop

Do While a > 1
Do While x <= Sqr(a)
Do While a / x = Int(a / x) And a >= x * x
  
If b = 0 Then
fenjieyinzi = fenjieyinzi & x
b = 1
Else
fenjieyinzi = fenjieyinzi & "*" & x
End If
a = a / x
Loop
  
x = x + 2
Loop
  
k = a
a = 1
Loop
  
If b = 1 Then
fenjieyinzi = fenjieyinzi & "*" & k
Else
fenjieyinzi = "这是一个质数"
End If
  
End If

End Function
Private Function fenjieyinzi1(sa As String) As String
Dim a, b
a = Val(sa)
m = Sqr(a)
a1 = 3
s = 0
Do While a1 <= m
b = a - a1
c = fenjieyinzi(Val(a1))
d = fenjieyinzi(Val(b))
If InStr(c, "*") = 0 And InStr(d, "*") = 0 Then
s = s + 1
Print a1, "+", b
'ls2 = ls2 & CStr(a1) & "+ " & CStr(b) & vbCrLf
Else
s = s
End If
a1 = a1 + 2
Loop
a2 = a1
s1 = s
Do While a2 <= a / 2
b1 = a - a2
c1 = fenjieyinzi(Val(a2))
d1 = fenjieyinzi(Val(b1))

If InStr(c1, "*") = 0 And InStr(d1, "*") = 0 Then
s1 = s1 + 1
Print a2, "+", b1
'ls2 = ls2 & CStr(a2) & "+ " & CStr(b1) & vbCrLf
Else
s1 = s1
End If
a2 = a2 + 2

Loop
fenjieyinzi1 = a & "/方根" & m & "/GM是" & s & " / G=" & s1
End Function
Private Function fenjieyinzi2(sa As String) As String
Dim a, b
a = Val(sa)
m = Sqr(a)
m1 = Int(m)
a2 = m1
a1 = 3
s = 1
b = 1
Do While a2 <= m And InStr(fenjieyinzi(Val(a2)), "*") <> 0
a2 = a2 - 1
Loop
Do While a1 <= a2
c = fenjieyinzi(Val(a1))
If InStr(Trim(c), "*") = 0 Then
s = s + 1
b = b * Val(1 - 2 / a1)
Else
s = s
End If
a1 = a1 + 2
Loop
b2 = (a2 ^ 2 / 4) * b
b1 = (a / 4) * b
s1 = s
Do While a1 <= 4 * a2
c = fenjieyinzi(Val(a1))
If InStr(Trim(c), "*") = 0 Then
s1 = s1 + 1
b = b * Val(1 - 2 / a1)
Else
s1 = s1
End If


a1 = a1 + 2
Loop
b3 = (a / 4) * b
If s = 1 Then

fenjieyinzi2 = "  /" & a & " /" & a2 & " /m为" & s & ">  区间的理论平均值LG/(m-1)为" & b2 / s - 1 & "  LG=" & b1 & "而CLG是" & b3
Else
fenjieyinzi2 = " /" & a & " /" & a2 & " /<m为" & s & ">  区间的理论平均值LG/(m-1)为" & b2 / (s - 1) & "  LG=" & b1 & "而CLG是" & b3
End If


End Function

Private Function fenjieyinzi3(sa As String) As String
Dim a, b
a = Val(sa)
m = Sqr(a)
a1 = 3
s = 0
Do While a1 <= m
b = a - a1
c = fenjieyinzi(Val(a1))
d = fenjieyinzi(Val(b))
If InStr(c, "*") = 0 And InStr(d, "*") = 0 Then
s = s + 1
Print a1, "+", b
ls2 = ls2 & CStr(a1) & "+ " & CStr(b) & vbCrLf
Else
s = s
End If
a1 = a1 + 2
Loop
a2 = a1
s1 = s
Do While a2 <= a / 2
b1 = a - a2
c1 = fenjieyinzi(Val(a2))
d1 = fenjieyinzi(Val(b1))

If InStr(c1, "*") = 0 And InStr(d1, "*") = 0 Then
s1 = s1 + 1
Print a2, "+", b1
'ls2 = ls2 & CStr(a2) & "+ " & CStr(b1) & vbCrLf
Else
s1 = s1
End If
a2 = a2 + 2

Loop
fenjieyinzi3 = ls2
End Function

Private Function paixu12(a As String, sb As String) As String
Dim i As Integer
Dim ak(), s105, cr(), k
s103 = a
Set f = CreateObject("Scripting.Dictionary")
s105 = Split(s103, "/")
   j1 = UBound(s105)
   Print j1
   k = 1
   For k1 = 1 To j1
      n1 = n1 + 1
       ReDim Preserve ak(1 To n1)
      ak(n1) = s105(n1)
      k2 = ak(n1)
      Print ak(n1)
     If k2 <> 2 And k2 < Val(sb) Then
     k = k * (k2 - 1) / (k2 - 2)
     Else
     k = k
     End If
    Next
    paixu12 = k
End Function
Private Function paixu1(a As String) As String
Dim i As Integer
Dim ak(), s105, cr(), f
s103 = a
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)
      Print ak(n1)
    Next
   
     
        For k = 1 To j1
           
             ReDim Preserve cr(1 To k)
            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
        
     paixu1 = s104
End Function
回复 支持 反对

使用道具 举报

 楼主| 发表于 2026-9-23 14:45 | 显示全部楼层
其中的KLG是乘以波动因子K的连乘积结果,能够跟踪实际值,接近或稍大于实际,差值不大而已。仅仅用于参考而不能用于证明。
说明影响解的个数的因素:除了不同的奇素因子的个数多少,主要的就是奇素因子的大小,越小的影响越大,其他因素就是素因子疏密不均匀分布也有影响,只是影响较小而已。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|数学中国 ( 京ICP备05040119号 )

GMT+8, 2026-10-11 12:22 , Processed in 0.087832 second(s), 13 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表