题库 高中信息

题干

(加试题)一个正整数(非素数)可以表示成它的质因子(“1”与其本身除外)的乘积。给出任一个整数N,求出它所有的质因子以及每个因子出现的次数,并显示乘积表达式。例如:整数120=2×2×2×3×5,所以它的质因子是2,3,5,次数分别是3次,1次,1次。
用Visual Basic编写一个程序求质因子,功能如下:在文本框Text1中输入一个数,单击“计算”命令按钮Command1,在列表框中显示该数的质因子及相应的次数,并显示乘积表达式。程序运行时的界面如图所示。

实现上述功能的VB程序如下,但划线处代码有错,请改正:
Private Sub Command1_Click()
Dim a(1 To 100) As Integer '数组a存放该整数的质因子出现的次数
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 "质因子" & "   " & "次数"
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
加框①处应改为:________;加框②处应改为:________。
上一题 下一题 0.99难度 填空题 更新时间:2019-05-09 08:33:27

答案(点此获取答案解析)

同类题4

条形码是按照一定编码规则排列的图形标识符。如右图所示,条形码下方数字左边12位代表信息,最右边一位是校验码。校验码产生方法如下:

①把条形码下方数字从右往左依次编序号为“1,2,3,4……”;
②从序号2开始把所有偶数序号位上的数相加求和,并乘以3;
③从序号3开始把所有奇数序号上的数相加求和;
④把第②和第③步结果相加求和;
⑤10减去第④步结果的个位数,得出校验码(如果差值为10,则校验码为0);
如条形码的数字为:977167121601X(X为校验码),则校验码主要产生步骤如下:
1) (1+6+2+7+1+7)×3=72
2) 0+1+1+6+7+9=24
3) 72+24=96
4) 10-6=4
所以最后校验码X=4,此条形码数字为9771671216014。
小何为此编写了VB程序,用以验证条形码输入正确与否。程序运行时,从文本框Text1获取条形码数字部分,单击按钮Command1后,在列表框List1中输出结果。实现上述功能的VB代码如下,但加框处代码有错,请改正。
Private Sub Command1_Click()
Dim i As Integer, b As String, Lb As Integer
Dim s1 As Integer, s2 As Integer, tmp As Integer
Dim c As String
Dim d(1 To 13) As Integer '存储数据
Dim res As String '存储结果
b =" Text1.Text" '输入
Lb = Len(b)
s1 =" 0" : s2 = 0
flag = True
res = "输入错误!"
If Lb =" 13" Then
For i =" 1" To 13
c =" Mid(b," Lb - i + 1, 1)
If c >= "0" And c <= "9" Then
d(i) =" Val(c)" '输入转换
Else
flag =" False" : Exit For
End If
Next i
If flag Then
For i =" 2" To Lb Step 2
s1 =  s1 + d(i) '参数计算1
s2 =s2 + d(i) '参数计算2    ①
Next i
tmp =" s1" * 3 + s2
If tmp Mod 10    Then res = "输入正确!"  ②
End If
End If
List1.AddItem res
End Sub