夜雨聆风学习资料网

ARTICLE · 1349441

VBA之Excel应用第六章第五节 求余计算(Mod)与质数的检验

VBA之Excel应用第六章第五节 求余计算(Mod)与质数的检验

《VBA之Excel应用》(版权10178983)是非常经典的,是我推出的第七套教程,定位于初级,目前是第一版修订。这套教程从简单的录制宏开始讲解,一直到窗体的搭建,内容丰富,实例众多。大家可以非常容易的掌握相关的知识,这套教程共三册,十七章,都是我们在利用EXCEL工作过程中需要掌握的知识点,希望大家能掌握利用。今日讲解的内容是VBA之Excel应用第六章第五节求余计算(Mod)与质数的检验

【分享成果,随喜正能量】这个世界,不需要争论有无。有或没有是由个人认知所决定的,就如同你进入一个黑暗的房间里,是看不见其中的摆设的,只有开灯时,你才会看到物品的所在。这个灯其实就是打开你认知的灯。 

第六章第五节求余计算(Mod)与质数的检验

大家好,我们这讲讲解的是求余计算(Mod)与质数的检验。求余数是算术中经常做的一种计算,这种计算利用VBA也是可以做到的,这就是Mod运算。这讲中,我们还要讲解质数的检验,当然也是利用的Mod运算。

1Mod 运算符

Excel VBA中的Mod运算符给出除法的余数,将两个数字相除,仅返回余数。

语法:result = number1 Mod number2

参数:

① result 必需。任何数值变量或属性。

② number1必需。任何数值表达式。

③ number2 必需。任何数值表达式。

l这种运算支持所有数值类型。包括无符号和浮点类型和Decimal类型。

lMod操作的结果保留被除数的符号,number1 因此它可以是正数也可以是负数。结果始终处于(- number2 ,number2 )范围内。

l如果 number1 或 number2 是浮点值,则返回相除的浮点余数。结果的数据类型是最小的数据类型。

l使用浮点数时,请记住,内存中不一定有精确的十进制表示形式。这可能会导致某些操作产生意外结果。

2质数判断的代码及讲解

质数(prime number)又称素数,有无限个。一个大于1的自然数,除了1和它本身外,不能被其他自然数整除,换句话说就是该数除了1和它本身以外不再有其他的因数;否则称为合数。最小的质数是2。

目前为止,人们未找到一个公式可求出所有质数。那么如何判断一个数是否为质数呢?我们下面提供一个VBA代码来做这个判断。

下面看我给出的代码:

Sub mynzE() '质数的判断

DimmyTem As Integer, myNumber As Long

myTem= 0

myNumber= InputBox("请输入需要测试的自然数(小于2147483647)")

MsgBox"您录入的数值是 " & myNumber & ",下面将开始质数的测试,这可能需要些时间!"

Fori = 1 To myNumber

IfmyNumber Mod i = 0 Then

myTem= myTem + 1

EndIf

Next

IfmyTem = 2 Then

MsgBoxmyNumber & " 是一个质数!"

Else

MsgBoxmyNumber & " 不是一个质数!"

EndIf

End Sub

代码截图:

代码解读:             1)Dim myTem As Integer, myNumber As Long

以上代码声明了两个变量,myTem作为测试的中间结果,myNumber是我们需要测试的数值。

2) myTem = 0

对作为测试的中间结果赋初始值。

3)myNumber = InputBox("请输入需要测试的自然数(小于2147483647)")

要求用户录入需要测试的数值。注意我们给出的变量的数据类型是long型,这种类型的数据最大值是2147483647,我们只能录入小于2147483647这个值。

4)For i = 1 To myNumber

IfmyNumber Mod i = 0 Then

myTem= myTem + 1

EndIf

Next

以上利用了mod运算来验证数值是否为质数,如果存在了其他数值可以被这个数整除,myTem会累加。

5)If myTem = 2 Then

MsgBoxmyNumber & " 是一个质数!"

Else

MsgBoxmyNumber & " 不是一个质数!"

End If

以上代码根据中间测试结果myTem来判断这个数值是否为质数,如果只存在两次整除,那么这个数就是质数。

3质数判断的代码运行效果

我们最后看看实际的测试效果,点击运行按钮:

这个时候会弹出一个对话框,要求我们录入测试的数值:

我们录入一个数值后点击确定:

再次点击确定:

今日内容回向:

1)什么是Mod运算?

2)测试质数的思路是怎样的?

3)我们录入数值后会弹出一个对话框:MsgBox "您录入的数值是 " & myNumber & ",下面将开始质数的测试,这可能需要些时间!",为了节约时间,代码上述思路,代码应该做什么改进?

本讲内容参考程序文件:工作簿06.xlsm

我20多年的VBA成果全在下面的资料中:          

回首页,搜索你想要的文档

在首页搜索框输入关键词,快速定位资料

文库首页搜索指引 立即搜索

相关学习资料