【正确答案】 Option Explicit
Private Sub CmdFind_Click()
Dim a As Integer,b As Integer,ss As Long
Dim n As Integer,st As String,k As Integer
a=Text1: b=Text2
For n=a To b
ss=n*n
st=""
k=nsum(ss,st)
If prime(k) Then
List1.AddItem n & "^2=" & ss & ":" & st & "=" & k
End If
Next n
End Sub
Private Function nsum(n As Long,st As String) As Integer
Dim p As String,q As String,i As Integer
p=CStr(n)
For i=1 To Len(P)
q=Mid(p,i,1)
nsum=nsum+Val(q)
st=st & q & "+"
Next i
st=Left(st,Len(st)-1)
End Function
Private Function prime(n As Integer)As Boolean
Dim i As Integer
If n=1 Then Exit Function
For i=2 To Sqr(n)
If n Mod i=0 Then Exit Function
Next i
prime=True
End Function
Private Sub CmdClear_Click()
Text1="" : Text2=""
List1.Clear
Text1.SetFocus
End Sub