"05年江苏计算机二级VB上机试题及答案详解"

需积分: 0 0 下载量 60 浏览量 更新于2024-03-25 收藏 148KB DOC 举报
05年秋江苏计算机二级VB上机试题要求编写一个程序,找出2到10000之间可以表示成2²-1形式的素数。其中,需要编写一个函数Mersenne用于判断一个数是否符合2²-1的形式,还需要编写一个函数Prime用于判断该数是否为素数。 该程序的界面包括一个按钮Command1和一个列表框List1。点击按钮Command1后,程序会在列表框List1中显示符合条件的素数。 下面是该程序的源代码部分: ```vb Option Explicit Private Sub Command1_Click() Dim Exp As Integer, Idx As Integer For Idx = 2 To 10000 If Mersenne(Idx, Exp) Then If Prime(Idx) Then List1.AddItem Idx End If End If Next Idx End Sub Private Function Mersenne(Number As Integer, ByRef Exponent As Integer) As Boolean Dim MersenneNumber As Integer Exponent = 0 Do Exponent = Exponent + 1 MersenneNumber = 2 ^ Exponent - 1 If MersenneNumber = Number Then Mersenne = True Exit Function End If Loop While MersenneNumber < Number Mersenne = False End Function Private Function Prime(Number As Integer) As Boolean Dim Factor As Integer For Factor = 2 To Sqr(Number) If Number Mod Factor = 0 Then Prime = False Exit Function End If Next Factor Prime = True End Function ``` 在程序的运行过程中,首先会调用Mersenne函数判断一个数是否符合2²-1的形式,然后再调用Prime函数判断该数是否为素数。如果符合条件,则将该数添加到列表框List1中。 通过以上程序,可以找出2到10000之间可以表示成2²-1形式的素数,并在界面上显示出来。 综上所述,该程序实现了找出2到10000之间可以表示成2²-1形式的素数的功能,通过编写Mersenne和Prime函数,判断一个数是否符合条件,并最终在界面上显示出来。