for循环代码:
Private Sub Command1_Click()
Dim a As Integer, b As Integer
a = Val(Text1)
For b = 2 To a - 1
If a Mod b = 0 Then
Exit For
End If
Next b
If b >= a Then
Text2 = "素数"
Else
Text2 = "非素数"
End If
End Sub
上面的懂吗?
以此条件,while求素数。求解。。顺带的讲讲原理
VB中的while循环求素数问题
答案:2 悬赏:0
解决时间 2021-12-30 06:27
- 提问者网友:无依无靠的距离
- 2021-12-29 19:22
最佳答案
- 二级知识专家网友:一池湖水
- 2021-12-29 21:01
Private Sub Command1_Click()'点击按钮事件
Dim a As Integer, b As Integer’定义变量,数值型
a = Val(Text1)‘从文本框获取数字
For b = 2 To a - 1’循环,从2起,到a-1止,
If a Mod b = 0 Then‘求余数,如果余数为0,则说明所输入的数是合数
Exit For’是合数就退出循环
End If’结束一次判断
Next b‘下一下数
If b >= a Then‘如果b不小于a(如果是素数的话,b最后的值是a-1+1=a的值,也就是b=a;不可能出现b>a的情况)
Text2 = "素数"
Else’如果b小于a,就不可能是素数,而是合数了。
Text2 = "非素数"
End If‘结束对b的判断
End Sub’块结束
Dim a As Integer, b As Integer’定义变量,数值型
a = Val(Text1)‘从文本框获取数字
For b = 2 To a - 1’循环,从2起,到a-1止,
If a Mod b = 0 Then‘求余数,如果余数为0,则说明所输入的数是合数
Exit For’是合数就退出循环
End If’结束一次判断
Next b‘下一下数
If b >= a Then‘如果b不小于a(如果是素数的话,b最后的值是a-1+1=a的值,也就是b=a;不可能出现b>a的情况)
Text2 = "素数"
Else’如果b小于a,就不可能是素数,而是合数了。
Text2 = "非素数"
End If‘结束对b的判断
End Sub’块结束
全部回答
- 1楼网友:开心就好
- 2021-12-29 22:07
我来解释一下:
dim i as integer,x as integer '变量声明
x=inputbox("请输入一个正整数(>=3):","判断素数") '取得要判断的数
for i=2 to x-1 ’这句循环的意思:从2到(x-1)这个范围中,有没有可以整除x的
if x mod i =0 then exit for ’若从2到(x-1)这个范围中,有可以整除x的,跳出循环,此时i就是x的一个约数
next i
if i>=x-1 then ’这句话有问题,我改了一下,意思是:若一直到(x-1)还没有出现可以整除x的数,则它是素数
msgbox x & "是素数!", ,"判断结果"
else
msgbox x & "不是素数!", ,"判断结果"
end if
也就是说,你的代码有误,正确的代码以及解释我写在上面了,我写的单引号视中文的,不能加到vb里,你最好改一下
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯