如何设计一个程序来找出1000以内的素数

函数代码:
function isprime(byval n as integer)asboolean
dim i as integer
ifn<2 then
isprime=false
exit function
end if
ifn=2 then
isprime=true
exit function
end if
isprime=true
for i=2 to n-1
if n mod i=0 then
isprime=false
exit function
end if
next
end function

事件过程代码:
Private Sub Command1_Click()
const n=1000
dim i as integer
for ( ) '1到1000逐一判断
if( ) then '如果该数是素数,则在list1中显示
list1.additem str(i)
end if
next

End Sub

提示无法赋值到该表达式 哪里出了问题

Sub Command1_Click()里,Const n = 1000 了,怎么还For n = 2 To 1000 呢?循环变量n怎么是之前定义的常量? 而且内嵌For(For i = 2 To n) 的“n”也不对,大于2的时候此处应该为n-1。
function isprime()貌似还行,但没看到哪里组装调用它了。可以用个For 1到1000的循环掉此函数。

切记Const n后,下面代码别再拿n做变量了。追问

那应该怎么修改

追答

我更新回答了。另外,你可别告诉我你没有Dim list1 as New Collection 的代码啊。。。。还有用list1.Add Str(i)。看我实现的代码,其中的function isprime()用的是你的,就不重复了。

Private Sub CommandButton1_Click()
    Dim list1 As New Collection
    For n = 1 To 1000
        If isprime(n) Then
            list1.Add Str(n)
        End If
    Next
   
    Dim output As String
    output = "1到1000以内的素数是:"
    For i = 1 To list1.Count
        output = output & list1.Item(i) & "  "
    Next
    MsgBox output
   
End Sub

 

运行结果:

追问

最好能够通过我提供的代码实现

追答

看来你没编程的潜质,算了放弃吧。
我这本来就是拿你代码修改的!!!真晕死。。。

温馨提示:答案为网友推荐,仅供参考