用VBA做一个窗体,计算100以内的素数

2025-04-01 21:13:09
推荐回答(2个)
回答1:

最前面加 print 2
没什么可说的,2必然是,加上就行,当手动优化。
或者这个,求较小的素数用(比如100):

Const maxn = 100

Private Sub Command1_Click()

Dim i As Long, j As Long
Dim a(1 To maxn) As Boolean

For i = 2 To maxn
a(i) = True
Next i

For i = 2 To Sqr(maxn)
For j = 2 To maxn \ i
a(i * j) = False
Next j
Next i

For i = 1 To maxn
If a(i) Then Text1.Text = Text1.Text & " " & i
If i Mod 20 = 0 Then Text1.Text = Text1.Text & " " & Chr(13)
Next i

End Sub

回答2:

Private Sub Command2_Click()
Text2.Value = 0

Dim str1 As String
Dim i As Integer, j As Integer

'a = Int(InputBox("请输入多少之内的素数", "求出素数测试", "50", 200, 500))

For i = 2 To 100
For j = 2 To Int(Sqr(i)) + 1
If i Mod j = 0 Then
Exit For
ElseIf j = Int(Sqr(i)) + 1 Then
str1 = str1 + Str(i)
End If
Next
If j = Int(Sqr(i)) + 1 Then str1 = str1 + Str(i)
Next
Text2.Value = str1
End Sub