Hello,各位小伙伴,本节课程我们做一个小练习——如何用VB来检测某个数是不是素数?
首先,我们来看下素数的概念。
素数定义:质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。
从定义中不难分解出以下几个条件:
1,素数是大于1的。
2,素数是一个自然数,即它
必须是一个整数。
3,素数只能被自己或者1整除。
例如:
数值5,它只能被1和5整除,且满足条件1和条件2,所以它是一个素数。而数值6,它除了可以被1和6整除外,还可以被2和3整除,因此6不是一个素数。
好了,既然我们已经弄明白了,素数的含义,并将其转化为3个条件。接下来就可以设计程序了。
首先,
我们参照下图设计一个程序界面:
接着,
我们可以开始编写代码了:
详细代码及注释如下所示:
Private Sub Command1_Click() Dim num As Single '用于存储用户输入的数 Dim i& '用于循环变量 Dim flag As Boolean '定义一个标记符变量 '获取用户输入数据,并转化为数值型 num = Val(Text1.Text) '判断输入数据是否大于1,不是的话退出事件过程 If num <= 1 Then MsgBox "请输入大1的整数" Exit Sub End If '判断输入数据是否是整数,不是的话退出事件过程 If num <> Int(num) Then MsgBox "请输入整数" Exit Sub End If flag = True '将标记符置为真'开始循环 For i = 2 To num - 1 'mod结果为0表示可以num整i,即num不是素数 If num Mod i = 0 Then flag = False '将flag标记符置假,代表num不是素数 '输出结果,注意有空格+下划线表示续行符 MsgBox num & "不是素数" & _ "(" & i & "*" & (num / i) & "=" & num & ")" Exit For '退出循环 End If DoEvents Next i '如果flag是真,那么输出结果为素数 If flag Then MsgBox num & "是素数" End If End Sub
也可以看代码截图:
最后,
代码编写好后,可以进行调试。
我们运行程序,然后输入一个数,测试效果。
如下图所示:
运行效果视频演示:
总结:
解决这类问题时,最重要的是先设计算法,代码和界面并不难,但是算法的设计是核心,在正式编写代码前,一定要想明白算法逻辑,可以尝试在脑海中构思清楚,也可以在纸上写/画出来。
好了,本节课程就学习到这里,小伙伴们一定要勤加练习哦。后面,我会做一篇练习题,用VB验证哥德巴赫猜想。其中将会用到本文素数判断的代码。
本文案例的源码免费下载地址:
https://download.csdn.net/download/weixin_39433293/12446003