Re: [VB6 ] 找出範圍內的質數,想請各位幫忙縮短...

看板Visual_Basic作者 (長孫轍)時間16年前 (2009/10/02 19:55), 編輯推噓1(104)
留言5則, 3人參與, 最新討論串4/4 (看更多)
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
無限大就是VB的整數上限阿 一般而言是 2147483647
10/02 20:13, 1F

10/02 20:13, , 2F
除非另外宣告
10/02 20:13, 2F

10/02 20:20, , 3F
了解了^W^
10/02 20:20, 3F

10/04 15:09, , 4F
VB6的整數上限是32767,長整數才是2147483647
10/04 15:09, 4F

10/04 15:12, , 5F
.NET整數2147483647,長整數2的63次方減1
10/04 15:12, 5F
文章代碼(AID): #1AnUefm6 (Visual_Basic)
討論串 (同標題文章)
文章代碼(AID): #1AnUefm6 (Visual_Basic)