|  | 
 
 
 楼主|
发表于 2024-1-21 21:59
|
显示全部楼层 
| 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 = Int(Mid(c2, InStr(c2, "=") + 1))
 c3 = Mid(c2, InStr(c2, "为") + 1, InStr(c2, ">") - 1)
 m = Val(c3)
 
 c1 = c1 & c & " /差为" & Val(g - lg) & "/" & c2 & vbCrLf & "实际区间平均值G/(m-1)为" & Val(g) / (Val(m) - 1) & vbCrLf
 
 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
 X = sa
 b = Int(Sqr(Val(X)) / 2)
 If X = 3 Or X = 2 Then
 a = True
 Else
 If Right(X, 1) Mod 2 = 0 Then
 a = False
 Else
 
 For I = 3 To 2 * b + 1 Step 2
 If InStr(X / I, ".") = 0 Then
 a = False
 Exit For
 
 Else: a = True
 
 End If
 Next
 End If
 End If
 If a = True Then
 fenjieyinzi = "这是个素数"
 Else
 fenjieyinzi = "2*2"
 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
 If s = 1 Then
 
 fenjieyinzi2 = "  /" & a & " /" & a2 & " /m为" & s & ">  区间的理论平均值LG/(m-1)为" & b2 / s - 1 & "  LG=" & b1
 Else
 fenjieyinzi2 = " /" & a & " /" & a2 & " /<m为" & s & ">  区间的理论平均值LG/(m-1)为" & b2 / (s - 1) & "  LG=" & b1
 End If
 
 
 End Function
 
 | 
 |