题目来源:大工慕课 链接 原题:Visual Basic程序设计教程(第二版)龚沛曾主编,高等教育出版社 实验6-6 作者:Caleb Sung
题目要求
验证哥德巴赫猜想:任意一个大于2的偶数都可以表示成两个素数之和。编程将6~100之间的全部偶数表示为两个素数之和,在列表框显示结果,最后Label1显示共有多少对素数之和,效果如图所示。
提示:
编一求素数的函数prime(m),若m是素数,则函数的返回值为True,否则为False。主调程序对已知6~100之间的全部偶数Even,把它分解成两个奇数Odd1和Odd2(Even-Odd1),先调用prime函数,判断Odd1是否是素数,若不是素数,则不必再对Odd2进行判断;否则再判断Odd2,若都是素数,则添加到列表框。利用两重循环来实现,外循环变量Even(6~100的偶数),内循环将Odd1(3~Even/2之间的奇数)和Odd2(Even-Odd1)进行判断。
参考代码
Function prime(
ByVal m
As Integer)
As Boolean
prime =
True
Dim i%
For i =
2 To m -
1
If (m
Mod i) =
0 Then prime =
False:
Exit Function
Next i
End Function
Private Sub Command1_Click()
n =
0
For i =
6 To 100 Step 2
For j =
3 To i \
2
If prime(j)
Then
If prime(i - j)
Then
List1.AddItem i &
" =" & j &
" +" & i - j
n = n +
1
End If
End If
Next j
Next i
Label1.Caption =
" 6和100之间共有" & n &
"对素数和"
End Sub