16.一個(gè)正整數(shù)(非素?cái)?shù))可以表示成它的質(zhì)因子(“1”與其本身除外)的乘積。給出任一個(gè)整數(shù)N,求出它所有的質(zhì)因子以及每個(gè)因子出現(xiàn)的次數(shù),并顯示乘積表達(dá)式。例如:整數(shù)120=2×2×2×3×5,所以它的質(zhì)因子是2,3,5,次數(shù)分別是3次,1次,1次。 用Visual Basic編寫一個(gè)程序求質(zhì)因子,功能如下:在文本框Text1中輸入一個(gè)數(shù),單擊“計(jì)算”命令按鈕Command1,在列表框中顯示該數(shù)的質(zhì)因子及相應(yīng)的次數(shù),并顯示乘積表達(dá)式。程序運(yùn)行時(shí)的界面如圖所示。 實(shí)現(xiàn)上述功能的VB程序如下,但加框處代碼有錯(cuò),請(qǐng)改正: Private Sub Command1_Click ( ) Dim a(1 To 100)As Integer'數(shù)組a存放該整數(shù)的質(zhì)因子出現(xiàn)的次數(shù) Dim i As Integer,m As Integer,n As Integer,k As Integer,s As String n=Val(Text1.Text) m=n k=Int(Sqr(n)) For i=2 To k a(i)=0 Next i For i=2 To k Do While n Mod i=0
a(k)=a(k)+1'
① n=n\i If
n=1
Then s=s+Str(i)+″×″Else s=s+Str(i):Exit For'② Loop Next i List1.AddItem“質(zhì)因子″&″″&″次數(shù)″ For i=2 To k If a(i)<>0 Then List1.AddItem Str(i) &″″& Str(a(i)) Next i List1.AddItem Str(m)+″=″+s End Sub 加框①處應(yīng)改為:
。 (3)請(qǐng)?jiān)跈M線處填入合適的代碼。 Dim kh(1 To 1500)As String'存放學(xué)生考號(hào) Dim a(1 To 1500)As Integer'存放學(xué)考成績 Dim b(1 To 1500)As Integer'存放加試成績 Dim pm(1 To 1500)As Integer'存放排名 Dim n As Integer'存放總?cè)藬?shù) Private Sub Form_Load ( ) Dim conn As New ADODB.Connection Dim rs As New ADODB.Recordset conn.ConnectionString=″Provider=Microsoft.ace.OLEDB.12.0;DATA Source=″+App.Path+″\cj.jye.ai″ conn.Open Set rs.ActiveConnection=conn rs.Open″select*from stu_cj″ List1.AddItem“考號(hào)″&″學(xué)考″&″加試″ n=0 Do While Not rs.EOF'到記錄集最后一條記錄后退出循環(huán) n=n+1'計(jì)數(shù) kh(n)=rs.Fields(″考號(hào)″) a(n)=rs.Fields(″學(xué)考成績″) b(n)=rs.Fields(″加試成績″) List1.AddItem kh(n) &″″& a(n) &″″& b(n) rs.MoveNext'移動(dòng)到下一條記錄 Loop rs.Close conn.Close Set rs=Nothing Set conn=Nothing End Sub Private Sub Command1_Click ( ) Dim i As Integer,j As Integer,t As Integer,k As String For i=1 To n-1 For j=n To i+1 Step-1 If a(j)+b(j)>a(j-1)+b(j-1)Or ①
Then t=a(j):a(j)=a(j-1):a(j-1)=t t=b(j):b(j)=b(j-1):b(j-1)=t k=kh(j):kh(j)=kh(j-1):kh(j-1)=k End If Next Next pm(1)=1 For i=2 To n If a(i)=a(i-1)And b(i)=b(i-1)Then ②
Else pm(i)=i End If Next List2.Clear List2.AddItem″排名″&″考號(hào)″&″學(xué)考″&″加試“ For i=1 To n List2.AddItem pm(i) &″″& kh(i) &″″& a(i) &″″& b(i) Next End Sub