第一个问题:
利用asc函数
例子:
Dim MyNumber
MyNumber = Asc("A") ' 返回 65。
第二个问题:
简单的求素数是初学者良好的学习语句练习
但是如果要指定长度.
那么无疑是给初学者带来很大的困难.
要解决三个问题:
一,指定长度
二,随机性
三,素数
然后结合这三个特性来解决你的第二个问题
我给你写了下代码:
添加一个Listbox控件,一个CommandButton控件
Private Sub Command1_Click()
Dim n#, i#, count%, slong%
slong = InputBox("请输入指定的长度", "提示", "1")
List1.Clear
If slong = 1 Then
For n = 2 To 7
For i = 2 To Int(Sqr(n))
If n Mod i = 0 Then Exit For
Next i
If i > Int(Sqr(n)) Then
List1.AddItem n
count = count + 1
End If
Next n
MsgBox List1.List(Rnd() * count)
Else
For n = 10 ^ (slong - 1) + 1 To 10 ^ slong - 1
For i = 2 To Int(Sqr(n))
If n Mod i = 0 Then Exit For
Next i
If i > Int(Sqr(n)) Then
List1.AddItem n
count = count + 1
End If
Next n
MsgBox List1.List(Rnd() * count)
End If
End Sub
首先.因为你长度的不确定.我给予了n和i变量设定为double类型.
若改为Dim n%, i%
那么你输入个9,程序就溢出了.
其次.你的程序是要求指定长度的随机素数.
那么我指定了是2位数.那么必然导致.我要得到的素数范围在11-99范围内.
所以采用了分情况来讨论.
一个情况是1-10,另一个情况是11-1.79769313486232E308/10(末尾带0的肯定不是素数)
最后解决素数问题
因为指定长度的随机性.
所以必然导致.我输入一个2,那么素数只能在11-99里面寻找.
那么就要得到11-99所有的素数.
这里我用了list控件来保存.
最后用了rnd来表现随机性.