求素数的一个问题

来源:百度知道 编辑:UC知道 时间:2024/05/09 00:24:47
Private Sub Command1_Click()

Dim i, k, c As Integer
c = 1

For i = 10000 To 1 Step -1
For k = 1 To i
If i Mod k = 0 And k <> 1 And i <> k Then c = 0
Next k
If c <> 0 Then
Print i
Exit For
End If
c = 1
Next i
End Sub
最后 Next i 上面那部 c=1 c为什么还要等于1? 我试过如果删掉这部就不显示了 这是为什么 ?谁知道?
还是不太理解.
还有上面有两个IF 语句怎么才一个 end if?

如果最后 Next i 上面那步没有 c=1,则一旦"If i Mod k = 0 And k <> 1 And i <> k Then"成立则c将永远保持0那"If c <> 0 Then"永不成立自然不会"Print i"。
总觉的这段程序写的不太好,修改一下:
Private Sub Command1_Click()
Dim i, k As Integer
Dim c As Boolean
For i = 10000 To 2 Step -1
c = true
For k = 2 To i/2
If i Mod k = 0 Then c = false
Next k
If c = true Then
Print i & Chr(10) & Chr(13)
End If
Next i
End Sub

c这里用来表示这个i是否素数

如果c 不=0(就是=1)就说明是素数
c=0就说明不是

一个循环结束之后把c这个标志重新置回来,否则
c <> 0就是真,Print i
就不执行了