VB程序中在list1中随机产生50个三位数,并将其中的素数移动到list2

 我来答
zzhilling
推荐于2017-10-06 · TA获得超过2701个赞
知道大有可为答主
回答量:3255
采纳率:45%
帮助的人:1134万
展开全部


Option Explicit


Private Sub Command1_Click()

    List1.Clear: List2.Clear

    Call NewNum(List1)

    Call ChooseTo(List1, List2)

End Sub


Function NewNum(mList As ListBox)

    Dim i As Integer, temp As Integer

    For i = 1 To 50

        Randomize

        temp = Rnd * 1000

        If temp > 99 Then

            Call mList.AddItem(temp, i - 1)

        Else

            i = i - 1

        End If

    Next

End Function


Function ChooseTo(mList1 As ListBox, mList2 As ListBox)

    Dim temp As String, i As Integer

    For i = 0 To mList1.ListCount - 1

        If ChackSUSU(mList1.List(i)) Then mList2.AddItem mList1.List(i)

    Next

End Function


Function ChackSUSU(i As Integer) As Boolean

    On Error GoTo L_end

    Dim j As Integer

    For j = 2 To i / 2

        If i Mod j = 0 Then ChackSUSU = False: Exit Function

    Next

    ChackSUSU = True

Exit Function

L_end:

    ChackSUSU = False

End Function

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sbj518
2015-07-27 · TA获得超过4.4万个赞
知道大有可为答主
回答量:1.1万
采纳率:81%
帮助的人:5370万
展开全部

是这个不?看是不是你需要的?

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
红山人2008
2015-07-27 · TA获得超过4679个赞
知道大有可为答主
回答量:5699
采纳率:0%
帮助的人:3965万
展开全部
Private Sub Command1_Click()
Dim n
n = 49
Do
For i = 0 To n
If Not prime(Val(List1.List(i))) Then
List2.AddItem List1.List(i)
List1.RemoveItem i
n = n - 1
Exit For
End If
Next
If i = n + 1 Then Exit Do
Loop
End Sub
Private Sub Form_Load()
For i = 0 To 49
List1.List(i) = Int(Rnd * 900 + 100)
Next
End Sub
Private Function prime(ByVal x%) As Boolean
Dim f As Boolean
For i = 2 To Sqr(x)
If x Mod i = 0 Then f = True
Next
prime = f
End Function
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式