vb高手进来一下

来源:百度知道 编辑:UC知道 时间:2024/06/14 05:46:37
谁会编一个:点击一下窗体,就能把1到1000以内的质数写出来的程序。的程序,谢谢。

一楼非正解。显然一楼的代码必然会把“1”也纳入了质数当中。故错。

下面为正解,且为最优解:
Private Sub Form_Click()
Dim p() As Integer, flag As Boolean
ReDim p(0)
p(0) = 2
For i = 3 To 1000 Step 2
flag = True
For j = 0 To UBound(p)
If p(j) > Int(Sqr(i)) Then Exit For
If i Mod p(j) = 0 Then flag = False: Exit For
Next
If flag = True Then
ReDim Preserve p(UBound(p) + 1)
p(UBound(p)) = i
End If
Next
For k = 0 To UBound(p)
If k Mod 10 = 9 Then
Print p(k)
Else
Print p(k);
End If
Next
End Sub

质数
什么是质数?就是在所有比1大的整数中,除了1和它本身以外,不再有别的约数,这种整数叫做质数,质数又叫做素数。这终规只是文字上的解释而已。能不能有一个代数式,规定用字母表示的那个数为规定的任何值时,所代入的代数式的值都是质数呢?

质数的分布是没有规律的,往往让人莫明其妙。如:101、401、601、701都是质数,但上下面的301和901却是合数。

有人做过这样的验算:1^2+1+41=43,2^2+2+41=47,3^2+3+41=53……于是就可以有这样一个公式:设一正数为n,则n^2+n+41的值一定是一个质数。这个式子一直到n=39时,都是成立的。但n=40时,其式子就不成立了,因为40^2+40+41=1681=41*41。

被称为“17世纪最伟大的法国数学家”费尔马,也研究过质数的性质。他发现,设Fn=2^(2^n),则