vb实验7-找出小于18000的最大素数
vb实验7-找出小于18000的最大素数
———–写给女朋友的题解
-
在窗体上画一个文本框,名称为TEXT1,两个命令按钮,C1和 C2,标题分别为“计算”和“退出”,并编写一个函数过程isprime可以在程序中直接调用,其功能是判断参数a是否为素数,如果是素数,则返回True,否则返回False。
请编写适当的事件过程,使得在运行时,单击“计算”按钮,则找出小于18000的最大素数,并显示在文本框中。我们先来画窗体,拖一个TextBox,然后清空Text属性
名字已经是TEXT1了然后拖两个CommandButton,修改名字为C1,C2。修改方法如上图。然后修改Caption属性值分别为“计算”和“退出”。
附效果图:界面部分就差不多好了。开始写判断一个树是不是素数的函数吧。
Private Function Prime(n As Integer) As Boolean
'函数参数为Integer,如果是素数则返回True,不是则返回False
'如果n小于2,就不是素数
If n < 2 Then
Prime = False
Exit Function
End If
Dim i As Integer
'先让返回值等于True
Prime = True
'然后检查2到根号n是不是有数能整除n
For i = 2 To Sqr(n)
'如果有数能被整除,就返回False
If n Mod i = 0 Then
Prime = False
Exit Function
End If
Next i
'如果没有被前面的if查到,那就是通过了层层筛选而产生的素数
End Function
- 函数写好了,就开始找找出小于18000的最大素数吧
在C1_Click里面写如下代码
Dim i As Integer
'从18000开始,每次-1,(为什么不从1-18000?因为low)
For i = 18000 To 2 Step -1
'如果找到一个,就输出到Text1,然后退出
If Prime(i) = True Then
Text1.Text = i
Exit Sub
End If
Next i