ta们说第二季:"任何一个大于6的偶数总可以分解成两个素数之和"的VB程序如何设计?

来源:百度文库 编辑:中科新闻网 时间:2024/04/29 04:57:08

编程只能验证,设计输入验证范围,然后将范围内的每个偶数分解成两个素数之和即可。

设计一个子程序,判断一个数是否是素数;放置一个文本框显示输出结果,MultiLine属性设置为True,设置垂直滚动条,粘贴以下代码:
Option Explicit

Private Sub Form_Load()
Dim I As Long, J As Long, Number As Long
Me.Show
For I = 6 To 300 Step 2
DoEvents
Number = 0
Text1 = Text1 & I
For J = 3 To I / 2 Step 2
If Check(I - J) = True Then
Text1 = Text1 & "=" & J & "+" & I - J
Number = Number + 1
End If
Next
If Number = 0 Then
Text1 = Text1 & "不能分解" & vbCrLf
Else
Text1 = Text1 & "(" & Number & ")" & vbCrLf
End If
Next
End Sub

Private Function Check(X As Long) As Boolean
Dim M As Long, N As Long
If X / 2 = Int(X / 2) Then
Check = False
Exit Function
End If
For M = 3 To Sqr(X) Step 2
If X / M = Int(X / M) Then
Check = False
Exit Function
End If
Next
Check = True
End Function

6~60的输出结果是:
6=3+3(1)
8=3+5(1)
10=3+7=5+5(2)
12=5+7(1)
14=3+11=7+7(2)
16=3+13=5+11(2)
18=5+13=7+11(2)
20=3+17=7+13=9+11(3)
22=3+19=5+17=9+13=11+11(4)
24=5+19=7+17=11+13(3)
26=3+23=7+19=9+17=13+13(4)
28=5+23=9+19=11+17(3)
30=7+23=11+19=13+17(3)
32=3+29=9+23=13+19=15+17(4)
34=3+31=5+29=11+23=15+19=17+17(5)
36=5+31=7+29=13+23=17+19(4)
38=7+31=9+29=15+23=19+19(4)
40=3+37=9+31=11+29=17+23(4)
42=5+37=11+31=13+29=19+23(4)
44=3+41=7+37=13+31=15+29=21+23(5)
46=3+43=5+41=9+37=15+31=17+29=23+23(6)
48=5+43=7+41=11+37=17+31=19+29(5)
50=3+47=7+43=9+41=13+37=19+31=21+29(6)
52=5+47=9+43=11+41=15+37=21+31=23+29(6)
54=7+47=11+43=13+41=17+37=23+31=25+29(6)
56=3+53=9+47=13+43=15+41=19+37=25+31=27+29(7)
58=5+53=11+47=15+43=17+41=21+37=27+31=29+29(7)
60=7+53=13+47=17+43=19+41=23+37=29+31(6)