当前位置:首页 » VB程序题 » 正文

VB程序题:如果一个整数的所有因子(包括1,但不包括本身)之和与该数相等,则称这个数为完数。例如6=1+2+3,所以6是一个完数。编写一个函数IsWs(m)判断m是否为完数,函数的返回值是逻辑型。……

VB程序题:如果一个整数的所有因子(包括1,但不包括本身)之和与该数相等,则称这个数为完数。例如6=1+2+3,所以6是一个完数。编写一个函数IsWs(m)判断m是否为完数,函数的返回值是逻辑型。主调程序在列表框显示1000以内的完数,如图F.4所示。

提示:
判断一个数m是否是完数,算法思想是:将m依次除以1~m/2,如果能整除,就是m的一个因子,进行累积;循环结束,若m与累加因子之和相等,m就是完数。  --- VB程序设计教程(第3版) (龚沛曾等编)课后实验源码

解题,VB源码,如下:
Dim a%()
Private Sub Form_Click()
    Print "1000以内的完数为:"
    For i = 1 To 1000
        If IsWs(i) Then
            Print i; "=1";
            For j = 1 To UBound(a)
                Print "+"; a(j);
            Next j
            Print
        End If
    Next i
End Sub
Function IsWs(m) As Boolean
    Dim s%
    s = 0
    For i = 1 To m \ 2
        If m Mod i = 0 Then
            ReDim Preserve a(j)
            a(j) = i
            j = j + 1
            s = s + i
        End If
    Next i
    If m = s Then IsWs = True
End Function


运行程序,点击窗体,效果图F.4 如下:


Visual Basic程序设计教程(第3版) (龚沛曾等编)课后实验源码

打赏 支付宝打赏 微信打赏

来源:济亨网

本文链接:http://wb86.com/post/94.html

    << 上一篇 下一篇 >>

    湘公网安备 43011102000514号 - 湘ICP备08100508号