VB求素数编程问题

以下是我编程的代码,是一个判断是否是素数的问题,但是怎么也出不来想要的结果,请问问题出现在那里?PrivateSubCommand1_Click()DimaAsInteg... 以下是我编程的代码,是一个判断是否是素数的问题,但是怎么也出不来想要的结果,请问问题出现在那里?
Private Sub Command1_Click()
Dim a As Integer
Dim b As Integer
a = Text1.Text
For b = 2 To a - 1 Step 1

If a Mod b = 0 Then
Label1.Caption = "yes"
Else
Label1.Caption = "no"
End If
Next b
End Sub
展开
 我来答
宝傅香英媚
2020-02-16 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.4万
采纳率:30%
帮助的人:756万
展开全部
从这个程序来看就是调用一个function来判断是否是素数,如果是则把prime的值赋为1,否则为0,因为如果是素数的话,那么就要从2一直循环到x,(for
i
=
2
to
x
-
1这个循环的判断是i的值大不大于x-1,如果大于则跳出循环,所以跳出循环后,i的值应该是=x),所以才使用if
i
>=
x
then
这个来进行判断,如果i
>=
x
,当然就表示上面的循环是完全循环完了的。及x是一个素数,当然这个理论上来说应该不会出现i>x的情况。不过这样写也没什么问题
hekcn
2010-04-26 · TA获得超过820个赞
知道小有建树答主
回答量:176
采纳率:50%
帮助的人:106万
展开全部
Private Sub Command2_Click()

Dim a As Integer
Dim b As Integer
Dim c As Boolean
a = Val(Text1.Text)
For b = 2 To a - 1
If a Mod b = 0 Then
c = True '设一个标志C,只要C为真就说明是合数
Exit For '加这句可省时间
End If
Next

If c Then
Label1.Caption = "no"
Else
Label1.Caption = "yes"
End If

End Sub
VB调试通过!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
184504762
2010-04-26 · TA获得超过270个赞
知道小有建树答主
回答量:226
采纳率:0%
帮助的人:129万
展开全部
If a Mod b = 0 Then
Label1.Caption = "no"
Else
Label1.Caption = "yes"
End If
替换一下,你弄反了,除清了就不是素数了
呵呵,祝你得到想要的答案(*^__^*) ~~

......
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
daofuuq
2010-04-26 · TA获得超过483个赞
知道小有建树答主
回答量:2560
采纳率:0%
帮助的人:925万
展开全部
一共3点
1、a = Text1.Text改成a =val( Text1.Text)
2、Label1.Caption 逻辑弄反了
3、判断时只要发现能整除的就马上跳出,如12/2 能整除了,你判断为NO,但是循环还在继续,所以后来12/11还是变为YES了
Private Sub Command1_Click()
Dim a As Integer
Dim b As Integer
a = Val(Text1.Text)
For b = 2 To a - 1 Step 1

If a Mod b = 0 Then
Label1.Caption = "no"
Exit Sub '只要能整除就跳出,并且不是素数
Else
Label1.Caption = "yes"
End If
Next b
End Sub
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chiefzjh
2010-04-26 · TA获得超过9089个赞
知道大有可为答主
回答量:7013
采纳率:37%
帮助的人:2379万
展开全部
For b = 2 To int(sqr(a))+1
if a=2 or b=int(sqr(a))+1 then Label1.Caption = "Yes": exit for
If a Mod b = 0 Then Label1.Caption = "No": exit for
Next b
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式