编写程序输出200~500范围内所有素数

来源:百度知道 编辑:UC知道 时间:2024/07/05 14:16:29
1.利用Function函数过程,判断一个数据是否为素数,若是,返回1,否则返回0 2.2. 单击窗体中的命令按钮,调用该Function过程,并将所有素数添加在列表框中。
Private Sub Command1_Click()
For i = 200 To 500
If f = 1 Then List1.AddItem i

Next i
End Sub

Public Function fact(k)
For m = 2 To k - 1
If k Mod m = 0 Then
f= 1
Else
f = 0
End If
Next m
fact =f
End Function
请问代码哪里有错啊?

第一,command应该调用函数名称,而不是函数内的某个变量
第二,如果500被m=2整除,就给f赋值0,并跳出循环,否则等到循环到m=499时,f又被赋值成1了,这样程序会认为几乎所有的数都是素数了
正确代码如下:

Private Sub Command1_Click()
For i = 200 To 500
If fact(i)=1 Then List1.AddItem i
Next i
End Sub

Public Function fact(k)
f = 0
For m = 2 To k - 1
If k Mod m = 0 Then
f = 0
Exit For
Else
f = 1
End If
Next m
fact = f
End Function

Private Sub Command1_Click()
For i = 200 To 500
If fact(i) = 1 Then List1.AddItem i

Next i
End Sub

Public Function fact(k)
For m = 2 To int(sqr(k))
If k Mod m = 0 Then
exit for
End If
Next m
if m >int(sqr(k)) then fact =1 else fact= 0
End Function