VB素数问题,会的帮忙,好的加分~~

来源:百度知道 编辑:UC知道 时间:2024/07/05 09:13:02
利用公式M*M-M+41(M为自然数)生成20个素数组成的数列(M取值1-20),再从得到的20个素数中找出其逆序数也是素数的那些数。例如:113的逆序数为311,它们都是素数,这样的素数也称为无暇素数。
有点麻烦,最好提供全部代码,谢谢~~
不用太复杂,以下是我的代码,但又个别地方不会写
Picture1.Print "20个素数:"
For M = 1 To 20
a(M) = M * M - M + 41
Picture1.Print a(M);
If M Mod 4 = 0 Then Print
Next M
End Sub

Private Sub Command2_Click()
Dim i As Integer, av As String, p As Integer, n As Integer
Picture1.Print
Picture1.Print "无暇素数:"
For i = 1 To 20
av = ""
For j = ??? To 1 Step -1
av = av &???
Next j
p = Val(av)
For j = 2 To p - 1
Next j
If j >= p Then
Picture1.Print ??? & "--" & av,
n = n + 1
If n Mod 4 = 0 Then Picture1.Print
End If
Next i
End Sub 打问号的三处帮忙填好就给分

分少一点无所谓,学到东西就行,实现思想就行!
Function isPrime(ByVal x As Integer) As Boolean
Dim si As Boolean
si = True
For i = 2 To Sqrt(x)
If x Mod i = 0 Then
si = False
Exit For
End If
Next i
isPrime = si
End Function
Sub Main()
Dim iArray(20) As Integer
Dim M As Integer
Dim answer As String
answer = ""
For M = 1 To 20
iArray(M - 1) = M * M - M + 41
If isPrime(CInt(StrReverse(iArray(M - 1).ToString()))) Then
answer = answer & "M = " & M.ToString() & "时,数" & iArray(M - 1) & "是完美的数" & vbCrLf
End If
Next
MsgBox(answer)
End Sub

M = 6时,数71是完美的数
M = 8时,数97是完美的数
M = 9时,数113是完美的数
M = 10时,数131是完美的数
M = 11时,数151是完美的数
M = 17时,数313是完美的数
M = 18时,数347是完美的数
M = 19时,数383是完美的数

这么点分干这么多活。。。不值,没有动力