|
在这几个偶数的哥德巴赫猜想解中,有许多小素数是重复的相同的,程序代码如下:
Private Sub Command1_Click()
Dim a, B
a = Val(Text1)
m1 = Val(Text2)
Do While a <= m1
m = Sqr(a)
s = 0
Text3 = ""
a1 = 3
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
Text3 = Text3 & 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
Text3 = Text3 & CStr(a2) & "+ " & CStr(B1) & vbCrLf
Else
s1 = s1
End If
a2 = a2 + 2
Loop
s11 = s11 & a & "的方根为" & m & "," & "方根内有" & s & "个总数有" & s1 & "个,总共有:" & vbCrLf & a & "=" & Text3
a = a + 210
Loop
Combo1 = s11
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
|
|