16.德國數(shù)學(xué)家哥德巴赫曾猜測:任何大于6的偶數(shù)都可以分解成兩個素數(shù)(素數(shù)對)的和。但有些偶數(shù)可以分解成多種素數(shù)對的和,如:10=3+7,10=5+5,即10可以分解成兩種不同的素數(shù)對。 小敏編寫了一個VB程序,用來求一個偶數(shù)(6到100之間)可能存在多少這樣的素數(shù)對(注:A+B與B+A認(rèn)為是相同素數(shù)對,不重復(fù)統(tǒng)計),并把這些結(jié)果輸出到一個列表框中,通過邏輯推理,小敏發(fā)現(xiàn)這些素數(shù)對都是奇數(shù),所以她只需要驗證奇數(shù)的素數(shù)對即可。運(yùn)行界面如圖所示,程序代碼如下。但加框處代碼有錯,請改正。 Dim IsPrime(100)As Boolean'用來存儲是否素數(shù),True為素數(shù),F(xiàn)alse為非素數(shù) Private Sub Command1_Click ( ?。?br />Dim x As Integer,y As Integer,i As Integer,num As Integer Call Init'調(diào)用Init函數(shù) x=Val(Text1.Text) y=x\2 num=0 For i=3To y Step 2 If IsPrime(i) Then'① num=num+1 List1.AddItem Str(x)+“=“+Str(i)+“+“+Str(x-i) End If Next i Label2.Caption=“偶數(shù)“+Str(x)+“共有“+Str(num)+“個素數(shù)對?!?br />End Sub Sub Init
'初始化IsPrime數(shù)組的值 Dim i As Integer,j As Integer,x As Integer For i=3To 100Step 2 x=Int(Sqr(i)) For j=2To x Step 2'② If i Mod j=0Then Exit For Next j If j>x Then IsPrime(i)=True Else IsPrime(i)=False Next i End Sub
次。 (2)請在橫線處填入合適的代碼。 Dim a(1To 20)As Integer Private Sub Command1_Click ( ?。?br />Dim Low As Integer,High As Integer Low=1 High=20 Do While High>Low If
Then'當(dāng)只余下兩個元素時 If
Then Label1.Caption=“拐點元素為“+Str(a(1))+“,下標(biāo)為“+Str(1) Else Label1.Caption=“拐點元素為“+Str(a(High))+“,下標(biāo)為“+Str(High) End If Exit Do End If m=(Low+High)\2 If a(m)>=a(Low) Then Low=m Else
End If Loop End Sub Private Sub Form_Load ( ?。?br />'生成循環(huán)遞增的數(shù)組a,代碼略 End Sub