本期知识视频教程
文字讲解:
素数其实就是我们平时说的质数。
在一般领域,对正整数n,如果用2到√n(根号n)之间的所有整数去除,均无法整除,则n为质数。
做一个案例吧!
案例~根据题意来填空:
根据这个题目,我们来设计并制作一下这个案例。
首先来按照题目意思来设计一下:
文本框相关设置:
1、multiline 选择 true代表可以多行写。
2、scrollbar选2代表打开纵向滚动条。
相关属性:
求解按钮随意设计一下,题目中没有要求,那就没有关系。
双击“求解”按钮,下面开始码代码:
首先,在点击求解的时候,我们让文本框清空。使用如下代码:
Text1.Text = "" 然后,我们解释题目中出现的几个函数的意思。
Sqr函数:求平方根
Chr(13):r回车键
Chr(10): n换行
Int函数:向下取整
题目分析:
这个题目是要输出3至100之间所有的为素数的数字有哪些。
K = Int(Sqr(n))表示获取当前这个数的平方根,并进行向下取整后返回值存放到K变量。
i = 2是因为判断一个数为素数,只要从2开始除就可以了。
flag = 0 '标记0默认为素数,1表示非素数
内部循环:
Do While i <= K And flag = 0
If n Mod i = 0 Then flag = 1 Else i = i 1
Loop
这个循环是核心部分,是判断是否为素数的核心,如果这个数是素数,那么将flag赋值为1。其实这里的代码我们也可以优化的,就是在标记为1后,我们就可以马上退出while循环就可以了,使用exit do。
判断是否为素数,使用if n Mod i=0 用来判断是否能够整除,mod表示取余数,如果没有余数,意味着就是可以整除的。只要是n能被整除的这个数,那它就不是素数。
最后,总结一下本题解题,由于在理论题中需要思考,我们按照如下思路。
1、阅读题意
2、看关键代码
3、难题可以通过调试来掌握
本案例所有源代码:
代码语言:javascript复制Dim n As Integer
Dim K As Integer
Private Sub Command1_Click()
Text1.Text = ""
For n = 3 To 100
K = Int(Sqr(n))
i = 2
flag = 0 '标记0默认为素数,1表示非素数
'循环作用,验证这个数不是素数,标记为1
Do While i <= K And flag = 0
If n Mod i = 0 Then flag = 1 Else i = i 1
Loop
If flag = 0 Then
Text1.Text = Text1.Text & n & Chr(13) & Chr(10)
End If
Next n
End Sub
欢迎小伙伴们订阅、关注、点赞、留言、转发!