VB 编程序找出1到1000之内的完数,并打印出它的因子

 我来答
zdingyun
2015-09-19 · 知道合伙人软件行家
zdingyun
知道合伙人软件行家
采纳数:15429 获赞数:48177
1982年上海业余工业大学化工系毕业 现退休

向TA提问 私信TA
展开全部

完数,完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。如果一个数恰好等于它的因子之和,则称该数为“完全数”。

VB可是使用Mod运算符求余和嵌套循环来找出完数。

Mod 运算符,用来对两个数作除法并且只返回余数。

可以将一个 For...Next 循环放置在另一个 For...Next
循环中,组成嵌套循环。不过在每个循环中的 counter 要使用不同的变量名。

实现代码:

Private Sub Form_Click()
    Dim i As Integer
    Dim j As Integer
    Dim k As Integer
    Dim l As Integer
    For i = 1 To 1000 '指定循环终点
        l = 0
        For j = 1 To i - 1
            If i Mod j = 0 Then l = l + j
        Next j
        If l = i Then
            Print i & "是完数,因子:";
            For k = 1 To l - 1
                If l Mod k = 0 Then Print k;
            Next k
            Print
        End If
    Next i
End Sub



transteel
推荐于2017-12-15 · TA获得超过248个赞
知道小有建树答主
回答量:538
采纳率:100%
帮助的人:0
展开全部
修改的别人的,但是能运行成功。不过怎么就3个完数?呵呵,白折腾半天。
Option Explicit
'一个按钮里调用的过程
Private Sub Command1_Click()
OutputWanNumber (1000)
End Sub

'求完数的过程
Sub OutputWanNumber(ByVal UpperBound As Integer)
Dim i As Integer
Dim j As Integer
Dim s As Integer
Dim k As Integer
For i = 1 To UpperBound
s = 0
For j = 1 To i - 1
If i Mod j = 0 Then s = s + j
Next j
If s = i Then
Print i & "是完数\因子:";
For k = 1 To s - 1
If s Mod k = 0 Then Print k;
Next k
Print
End If
Next i
End Sub
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
lzh741206
2008-04-14 · TA获得超过1192个赞
知道大有可为答主
回答量:1929
采纳率:100%
帮助的人:2799万
展开全部
Dim i, j, sum
Dim s
For i = 1 To 1000
sum = 0
s = ""
For j = 1 To i \ 2
If i Mod j = 0 Then
sum = sum + j
s = s & j & "+"
End If
Next j
If i = sum Then
Print CStr(i); Tab(5); "="; Left(s, Len(s) - 1)
End If
Next i
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式