关键词搜索

源码搜索 ×
×

VB 判断一个数是否为素数

发布2020-10-09浏览8134次

详情内容

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

    相关技术文章

    点击QQ咨询
    开通会员
    返回顶部
    ×
    微信扫码支付
    微信扫码支付
    确定支付下载
    请使用微信描二维码支付
    ×

    提示信息

    ×

    选择支付方式

    • 微信支付
    • 支付宝付款
    确定支付下载