当前位置: 高中信息技术 / 填空题
  • 1. 【加试题】德国数学家哥德巴赫曾猜测:任何大于6的偶数都可以分解成两个素数(素数对)的和。但有些偶数可以分解成多种素数对的和,如: 10=3+7,10=5+5,即10可以分解成两种不同的素数对。

    小敏编写了一个VB程序,用来求一个偶数(6到100之间)可能存在多少这样的素数对(注: A+B与B+A认为是相同素数对,不重复统计),并把这些结果输出到一个列表框中,通过逻辑推理,小敏发现这些素数对都是奇数,所以她只需要验证奇数的素数对即可。运行界面如图所示,程序代码如下。但加框处代码有错,请改正。

     

    Dim IsPrime(100) As Boolean  '用来存储是否素数,True为素数,False为非素数

    Private Sub Command1_Click()

        Dim x As Integer, y As Integer, i As Integer, num As Integer

    Call Init  '调用Init函数

        x = Val(Text1.Text)

    y = x \ 2

    num = 0

    For i = 3 To y Step 2

                     '①

    num = num + 1

                List1.AddItem Str(x) + "=" + Str(i) + "+" + Str(x - i)

            End If

        Next i

        Label2.Caption = "偶数" + Str(x) + "共有" + Str(num) + "个素数对。"

    End Sub

    Sub Init() '初始化IsPrime数组的值

        Dim i As Integer, j As Integer, x As Integer

        For i = 3 To 100 Step 2

            x = Int(Sqr(i))

                                '②

                If i Mod j = 0 Then Exit For

            Next j

            If j > x Then IsPrime(i) = True Else IsPrime(i) = False

        Next i

    End Sub

     ② 

微信扫码预览、分享更方便