作者Changsunche (長孫轍)
看板Visual_Basic
標題Re: [VB6 ] 找出範圍內的質數,想請各位幫忙縮短...
時間Fri Oct 2 19:55:16 2009
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
→ MOONRAKER:無限大就是VB的整數上限阿 一般而言是 2147483647 10/02 20:13
→ MOONRAKER:除非另外宣告 10/02 20:13
→ Changsunche:了解了^W^ 10/02 20:20
推 fumizuki:VB6的整數上限是32767,長整數才是2147483647 10/04 15:09
→ fumizuki:.NET整數2147483647,長整數2的63次方減1 10/04 15:12