vb编程 奇数位只和与偶数位之和均为素数

2026年09月22日 16:11
有1个网友回答
网友(1):

Private Sub Command1_Click()

  Dim i As Double, j As Double, Peculiar As Double, Uneven As Long, Even As Long, intN As Double

  intN = InputBox("Please input a Positive integer N:", "Seek peculiar number", 100)

  Me.Label1 = "在1至" & intN & "的整数中所有奇异数(奇数位" + vbCrLf + "之和与偶数位之和均为素数的数)如下:"

  For i = 1 To intN

    Uneven = 0

    Even = 0

    For j = 1 To Len(CStr(i))

      Uneven = Uneven + Val(Mid(CStr(i), 2 * j - 1, 1))

      Even = Even + Val(Mid(CStr(i), 2 * j, 1))

    Next j

    If IsPrimeNumber(Uneven) And IsPrimeNumber(Even) Then

      Me.List1.AddItem i

    End If

  Next i

End Sub


Private Function IsPrimeNumber(n As Long) As Boolean

  Dim i As Long

  IsPrimeNumber = True

  If n = 0 Or n = 1 Then

    IsPrimeNumber = False

  Else

    For i = 2 To Int(Sqr(n))

      If n Mod i = 0 Then

        IsPrimeNumber = False

        Exit For

      End If

    Next i

  End If

End Function