Re: [VB6 ] 找出範圍內的質數,想請各位幫忙縮短...
Function f(p As Integer)
Dim i, n, t As Integer
t = 1 '1代表質數
n = Sqr(p) 'Sqr 為開根號
For i = 2 To n
If (p Mod i) = 0 Then
t = 0 '0帶表合數
Exit For
End If
Next
f = t
End Function
'------------------------------------------------------------
Private Sub Command1_Click()
Dim x, n As Integer
x = 0 '此為陣列的大小,一開始就需要有最小值
ReDim a(x)
t1 = Val(Text1.Text)
If t1 < 2 Then '必要的判斷,不然可能會發生程式上的錯誤
MsgBox ("輸入數字需要≧2")
Exit Sub
End If
For n = 2 To t1
If f(n) = 1 Then '如果自訂函數出來的時候,F=1,此為質數
a(x) = n
x = x + 1 '讓陣列變大
ReDim Preserve a(x)
End If
Next
For n = LBound(a) To UBound(a)
ans = ans & " " & a(n)
Next
MsgBox (ans)
End Sub
**************************************************************
這是,模仿、參考,老師指導之後的型態= ="
不過有個問題就是,範圍不能無限大[-w-]
不知道最大範圍是多少,所以也沒設定下去了,
頂多設定範圍不能小於2。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.228.230.86
→
10/02 20:13, , 1F
10/02 20:13, 1F
→
10/02 20:13, , 2F
10/02 20:13, 2F
→
10/02 20:20, , 3F
10/02 20:20, 3F
推
10/04 15:09, , 4F
10/04 15:09, 4F
→
10/04 15:12, , 5F
10/04 15:12, 5F
討論串 (同標題文章)
完整討論串 (本文為第 4 之 4 篇):