
用VB求出n到m之间素数,怎么做呢?
求素数问题包括n到m间有多少个素数,素数和为多少,在指定的对象上输出。
下面开始编写代码完成求素数问题。
首先需要知道什么是素数?
素数又称质数,有无限个。一个大于1的自然数,除了1和它本身外,不能被其他自然数整除,顾名思义就是该数除了1和它本身以外不再有其他的因数。
有了这个基本的概念,接下来就可以编写相应的代码来完成这个过程。
以求300到500间素数为例,在窗体的单击事件中写下面的代码:
Private Sub Form_Click()
Dim N As Integer, x As Integer, i As Integer, k As Integer, s As Integer
N = 0
s = 0
For x = 301 To 499 Step 2 ’外循环直接排除偶数,只对奇数进行判断
i = 2: k = Int(x / 2)
Do While i <= k ’内循环判断x是否为素数
If x Mod i = 0 Then Exit Do ’若x被i整除,则x不是素数,结束DO循环
i = i + 1
Loop
If i > k Then ’正常退出内循环的x值是素数
s = s + x
N = N + 1 ’统计素数的个数
If N Mod 3 = 0 Then Print x Else Print x, ’每输出5个数就换行
End If 注;此处x后面有无逗号,直接影响输出效果!
Next x
Print vbCrLf; "素数共" & N & "个" ’ vbCrLf表示换行的意思
Print vbCrLf; "素数和为" & s
End Sub
注;print x后面有无逗号,直接影响输出效果!
x后有逗号输出效果:

x后无逗号输出效果:
