楼上写的程序,我无语了,要是有这么简单就好了……
下面是我写的程序:
Private Sub Command1_Click()
Dim a%(1 To 100), isprime As Boolean, k%
Static b%
b = 0
Cls
'随机产生100个100到999的数
Print "随机产生的100个数是:"
Randomize
For i = 1 To 100
a(i) = Int(Rnd * 900 + 100)
Print a(i);
If i Mod 10 = 0 Then Print '十个数一行
Next i
'找出素数
Print "其中是素数的数有:"
For i = 1 To 100
If a(i) Mod 2 <> 0 Then '能被2整除的肯定不是素数,故排除这种情况
isprime = True '奇数都有可能是素数,故先假设奇数都是素数
k = 3 '下面是判断a(i)是不是素数的算法,希望你能看懂
Do Until k > Sqr(a(i)) Or Not isprime
If a(i) Mod k = 0 Then
isprime = False
Else
k = k + 2
End If
Loop
If isprime = True Or k > Sqr(a(i)) Then
b = b + 1 '记录素数的个数
a(b) = a(i) '把素数用新的数组保存起来
Print a(b);
If b Mod 10 = 0 Then Print
End If
End If
Next i
'冒泡排序法
For x = b To 2 Step -1
For y = 1 To x - 1
If a(y) < a(y + 1) Then temp = a(y): a(y) = a(y + 1): a(y + 1) = temp
Next y
Next x
'输出排序后的素数
Print "按从大到小排序后的素数:"
For i = 1 To b
Print a(i);
If i Mod 10 = 0 Then Print
Next i
End Sub
运行结果如图所示。