vb素数问题

来源:百度知道 编辑:UC知道 时间:2024/05/13 07:42:54
Private Sub Command1_Click()
n = Text1.Text
For i = 2 To Sqr(n)
If n Mod i = 0 Then Exit For
Next i

If i > Int(Sqr(n)) Then
Print
Label1.Caption = "素数"
Else
Label1.Caption = "非素数"
End If
End Sub
这是我看了别人的自己做的,检验后是对的

我想知道
n = Text1.Text
For i = 2 To Sqr(n) '2到n平方根之间的数
If n Mod i = 0 Then Exit For '当n除以i余数等于0的时候
Next i
这段话是的意思我明白可是我不知道它起什么作用。

If i > Int(Sqr(n)) Then
i怎么可能会大于n平方根呢
假设n=100
Sqr(n)=10
i=2 to 10
2-10之间的数怎么会大于10呢???

另外为什么 i> sqr(n)时 就是素数呢
If i > Int(Sqr(n)) Then
Print
Label1.Caption = "素数"
素数就是质数,只能被1和它本身整除的数

Private Sub Command1_Click()
n = Text1.Text
For i = 2 To Sqr(n) 'i从2开始每循环一次自增1
一直到i=Sqr(n)+1时(不再满足i = 2 To Sqr(n))结束循环
If n Mod i = 0 Then Exit For'当i不是素数,有可以整除的因子时 跳出循环,此时i一定属于i = 2 To Sqr(n))这个范围内,这样 下面的if语句就会执行else部分,Label1.Caption = "非素数" 了
Next i

If i > Int(Sqr(n)) Then 'For循环进行到最后 i=Sqr(n)+1
Print
Label1.Caption = "素数"
Else
Label1.Caption = "非素数"
End If
End Sub

啥叫素数呀?