永发信息网

VB新手求助

答案:2  悬赏:50  手机版
解决时间 2021-04-22 23:10

一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子是1,2,3,而6=1+2+3,因此6是完数。请编写程序,求出1000内的所有完数。(注意:输出格式示例一定要是:1+2+3=6)

一些循环不太懂,麻烦高手帮忙写一下并解释一下,在网上找了一个

Private Sub Form_Click()
Dim i As Integer, j As Integer, m As Integer
For i = 1 To 100 '这里先找出所有要筛选的书
m = 0
For j = 1 To i - 1 '这里找出要筛选的数的因数,不包括本身
If (i Mod j) = 0 Then
m = m + j '累加因数
If i = m Then '判断是否是完全数
Print i
End If
End If
Next j
Next i
End Sub

上面这个是直接输出结果的,帮忙改一下或者直接写一个也OK啊,实在不会了,带注释哦,需要弄懂才有用,光达到目的没啥效果。

最佳答案

数学比较差,就不重新写了```呵呵```直接改```



Private Sub Form_Click()
Dim i As Integer, j As Integer, m As Integer
Dim q As String '定义一个字符串用来放要输出的式子
For i = 1 To 100 '这里先找出所有要筛选的书
m = 0
q = "" '每次找因子之前清空字符串
For j = 1 To i - 1 '这里找出要筛选的数的因数,不包括本身
If (i Mod j) = 0 Then
m = m + j '累加因数
If (q = "") Then '每次找到因子加入q里面去
q = j
Else
q = q & "+" & j
End If
If i = m Then '判断是否是完全数
Print q & "=" & i '最后合并完整的式子并输出
End If
End If
Next j
Next i
End Sub



修改的地方都做了说明``

全部回答
Private Sub Form_Click() Dim i As Integer, j As Integer, m As Integer, str As String Form1.Cls '清空输出 For i = 1 To 1000 '这里先找出所有要筛选的数 m = 0 str = "" For j = 1 To i - 1 '这里找出要筛选的数的因数,不包括本身 If (i Mod j) = 0 Then If str = "" Then '如果str还没有增加因子,则不用在前面加+ str = j '此因子为第一个因子 Else str = str & "+" & j '此因子不是第一个因子,在前面加+ End If m = m + j '累加因数 If i = m Then '判断是否是完全数 Print str & "=" & i End If End If Next j Next i End Sub
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
现在市场上好一点的口罩哪里有卖?
翻译一段英文!谢谢!
潘玮柏是加州理工大学什么系的
梦幻西游进入游戏时不正常,字体显示不正常,
DNF红眼45紫金套装用什么武器好点..?
广州最出名的餐厅是那家呢?
找一款横版西游游戏,单机,以前用按键手机玩
神州行09卡如何转为神州行08卡
人教版四年级英语录音,小学四年级的英语的名
海口南港过海时间表,2011年最新的时间。
有哪些45级的紫短剑
许嵩新专辑什么时候出
文章最后的remark什么意思
我家那只叫想想的狗狗特别不听话,我该怎么办
用沐浴露洗头会怎么样要沐浴露洗头会造成什么
推荐资讯
请问武汉有没有供应木片快餐盒的 价格多少最
在好友的QQ中打开我的空间怎么没有背景音乐?
什么蜘蛛会变红
拿你的生命去换你恋人的命,你愿意吗?
当自己一个人最最无助的时候,最好是做什么呢
怎么用激萌在快手直播的,像这个样子 10分
地下城36到那里打
谁知道此视频的歌
绿源电动车(庄里专卖店)地址在什么地方,想过
用电脑怎么可以进入手机QQ宠物
网恋能当真吗
反PS教程
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?