1.寻找一个质数的过程是看这个数被另一个整数除后是否能被整除。如果它可以被整除,它肯定不是素数(所以如果m Mod i=0,那么isp=false)。
2.对于一个整数来说,最傻的办法就是从2除到-1。比如97不能被2整除到96。但是这个方法显然不是最好的。最短的一步是从2除到这个整数的开根(即(Skr(m),四舍五入),剩下的不需要计算,因为如果除以大于Skr(m)的数,得到的数必须小于Skr(m)。
比如97从2除9(sqr(97)四舍五入),就不能完全除。如果97除以10以上的数字,则数字(四舍五入)不能大于9(即sqr(97))。所以根据乘法和交换律,只需要算一次
j = 0
对于i = 1至16步骤1
如果comISP。端口打开=真,然后先关闭串行端口
comISP .端口打开=假
如果…就会结束
comISP .CommPort = i
“出错时继续下一步”表示当发生运行时错误时,控件会立即转到发生错误的语句之后的语句,并在此处继续运行。访问对象时,请使用此表单,而不是“出错时转到”。
comISP .端口打开=真
如果Err。编号8002,无效的串行端口号。这样可以检测到虚拟串口,但是如果Err就检测不到了。使用数字= 0
如果j = 0,那么
j = i
如果…就会结束
cboPort。添加项目“COM”& amp;我将生成串行端口选择列表
如果…就会结束
comISP .端口打开=假
接下来我
如果j >。= 1然后
cboPort。Text = " COM " & amp自动打开可用的最小串行端口号
comISP .CommPort = j
comISP .端口打开=真
CmdOpenCom。Caption = "关闭串行端口"
shpCOM。FillColor = vbGreen
如果Err。Number = 8005则'串口已打开,vb惊叹号'
comISP .端口打开=假
cboPort。Text = " "
CmdOpenCom。标题=“开放串行端口”
shpCOM。FillColor = vbRed
如果…就会结束
如果…就会结束
首先,主体自定义功能部分没有问题,判断过程很简单
问题是对自定义函数的参数传递有误解
用户定义函数中定义的形式参数x只是一种形式。在实际调用这个函数时,不需要重新定义一个相同的x,只需将实际参数z传递给函数,并做如下修改
私有函数为整数
作为整数变暗
对于i = 2至x - 1
如果x Mod i = 0,则
退出
如果…就会结束
接下来我
如果我。= x然后
isprise = 1
其他
isprise = 0
如果…就会结束
结束功能
专用子命令1 _单击()
将z调成整数
z = InputBox(“输入日期”)
如果isprise(z) = 1,则
打印z;“是素数”
其他
打印z;“不是质数”
如果…就会结束
末端接头
有问题请继续提问,愿意回答,呵呵!
私有函数为整数
作为整数变暗
对于i = 2至x - 1
如果x Mod i = 0,则
退出
如果…就会结束
接下来我
如果我。= x然后
isprise = 1
其他
isprise = 0
如果…就会结束
结束功能
专用子命令1 _单击()
将x调成整数
对于x = 8000至9999
如果isprise(x) = 1,则
打印x;
如果…就会结束
下一个x
末端接头
因为我>:判断=x放在循环里,应该在循环外看看有没有可除数
私有函数为整数
作为整数变暗
对于i = 2至x - 1
如果x Mod i = 0,则
退出
如果…就会结束
接下来我
如果我。= x然后
isprise = 1
其他
isprise = 0
如果…就会结束
结束功能
j = 0
对于i = 1至16步骤1
如果comISP。端口打开=真,然后先关闭串行端口
comISP .端口打开=假
如果…就会结束
comISP .CommPort = i
“出错时继续下一步”表示当发生运行时错误时,控件会立即转到发生错误的语句之后的语句,并在此处继续运行。访问对象时,请使用此表单,而不是“出错时转到”。
comISP .端口打开=真
如果Err。编号8002,无效的串行端口号。这样可以检测到虚拟串口,但是如果Err就检测不到了。使用数字= 0
如果j = 0,那么
j = i
如果…就会结束
cboPort。添加项目“COM”& amp;我将生成串行端口选择列表
如果…就会结束
comISP .端口打开=假
接下来我
如果j >。= 1然后
cboPort。Text = " COM " & amp自动打开可用的最小串行端口号
comISP .CommPort = j
comISP .端口打开=真
CmdOpenCom。Caption = "关闭串行端口"
shpCOM。FillColor = vbGreen
如果Err。Number = 8005则'串口已打开,vb惊叹号'
comISP .端口打开=假
cboPort。Text = " "
CmdOpenCom。标题=“开放串行端口”
shpCOM。FillColor = vbRed
如果…就会结束
如果…就会结束