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 展开
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 展开
7个回答
展开全部
从这个程序来看就是调用一个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的情况。不过这样写也没什么问题
i
=
2
to
x
-
1这个循环的判断是i的值大不大于x-1,如果大于则跳出循环,所以跳出循环后,i的值应该是=x),所以才使用if
i
>=
x
then
这个来进行判断,如果i
>=
x
,当然就表示上面的循环是完全循环完了的。及x是一个素数,当然这个理论上来说应该不会出现i>x的情况。不过这样写也没什么问题
展开全部
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调试通过!
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调试通过!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
If a Mod b = 0 Then
Label1.Caption = "no"
Else
Label1.Caption = "yes"
End If
替换一下,你弄反了,除清了就不是素数了
呵呵,祝你得到想要的答案(*^__^*) ~~
......
Label1.Caption = "no"
Else
Label1.Caption = "yes"
End If
替换一下,你弄反了,除清了就不是素数了
呵呵,祝你得到想要的答案(*^__^*) ~~
......
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一共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
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
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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
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
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询