作者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
1F:→ MOONRAKER:无限大就是VB的整数上限阿 一般而言是 2147483647 10/02 20:13
2F:→ MOONRAKER:除非另外宣告 10/02 20:13
3F:→ Changsunche:了解了^W^ 10/02 20:20
4F:推 fumizuki:VB6的整数上限是32767,长整数才是2147483647 10/04 15:09
5F:→ fumizuki:.NET整数2147483647,长整数2的63次方减1 10/04 15:12