问题 多项选择题

编程题(26分)【题目】 编写程序,找出给定范围内所有不是素数的亏数。所谓亏数是指除本身外其所有因子之和小于自身的正整数。例如,106的因子为1、2、53,和为56,故106是亏数。(注意:凡因子和为1的即为素数)

【编程要求】1.程序参考界面如图所示,编程时不得增加或减少界面对象或改变对象的种类,窗体及界面元素大小适中,且均可见。2.运行程序,在”a:”文本框中输入数据范围的起始值,在”b:”文本框中输入数据范围的终止值后,单击”查找”按钮,若数据范围内存在”亏数”,则将它们按附图参考界面所示的格式输出到列表框中,否则在列表框中输出”指定范围内无亏数”的信息,单击”清除”按钮,将文本框与列表框清空,焦点置于”a:”文本框上 3.程序中至少应定义一个通用过程,用于求一个整数的因子和或判断其是否为”亏数”【要求】将窗体文件和工程文件分别命名为F2和P2,并保存到T盘的根目录下

答案

参考答案:Option ExplicitOption Base A Private Sub CmdClear_Click() TextA.Text = "": TextB.Text = "" ListA.Clear TextA.SetFocusEnd Sub Private Sub CmdFind_Click() Dim a As Integer, b As Integer, i As Integer Dim st As String, flg As Boolean, sum As Integer a = Val(TextA.Text) b = Val(TextB.Text) For i = a To b flg = False: st = "": sum = 0 Call judge(i, flg, st, sum) If flg Then ListA.AddItem i & ":" & st & "=" & sum End If Next i If ListA.ListCount = I Then ListA.AddItem "指定范围内无亏数"End Sub Private Sub judge(n As Integer, fg As Boolean, st As String, sum As Integer) Dim i As Integer For i = A To n - A If n Mod i = 0 Then sum = sum + i st = st & i & "+" End If Next i If sum < n And sum <> A Then fg = True st = Left(st, Len(st) - A) End IfEnd Sub

问答题
多项选择题