请问在VB里面如何设计程序找出1000以内的完数?
2个回答
展开全部
1、启动VB6.0,新建一个标准exe工程。
2、在窗体上绘制一个命令按钮,名称为Command1。
3、双击命令按钮进入代码窗口。
4、编写命令按钮的单击事件。
Private Sub Command1_Click()
For n = 1 To 1000
s = "" '这一句要加上
Sum = 0
For i = 1 To n / 2
If n Mod i = 0 Then
Sum = Sum + i
s = s + Str(i) + "+"
End If
Next i
If n = Sum Then
s = Left(s, Len(s) - 1)
Picture1.Print s; "="; n '这里 Picture1是图片框的名字
End If
Next n
End Sub
5、然后按F5运行测试,这样就完成了。
展开全部
一,首先要理解什么是完数:
如果一个数恰好等于它的因子之和,则称该数为“完全数”。各个小于它的约数的和等于它本身的自然数叫做完全数(Perfect number),又称完美数或完备数或者叫完数。
例如:第一个完全数是6,它有约数1、2、3、6,除去它本身6外,其余3个数相加,1+2+3=6。第二个完全数是28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。
二,所以,在判断一个数是否完数前,先要求出该数的所有小于它的约数;
比如:对于n=6,分解出其所有约数,并求它们的和:
Dim i As Integer
Dim n As Integer
Dim s As Integer
n = 6
s = 1
For i = 2 To n - 1
If n Mod i = 0 Then s = s + i
Next i
msgbox s
这样解决了一个数是否完数的问题,现在要求出1000以内所有的完数,即:1-1000之间所有的完数。那么应该想到使得n从2(肯定不是完数)开始循环到1000,然后一一进行上述判断。
三,求出1000以内所有的完数:
Dim i As Integer
Dim n As Integer
Dim s As Integer
for n=2 to 1000
s=1
for i=2 to n-1
If n Mod i = 0 Then s = s + i
Next i
if s=n then print n
next n
如果一个数恰好等于它的因子之和,则称该数为“完全数”。各个小于它的约数的和等于它本身的自然数叫做完全数(Perfect number),又称完美数或完备数或者叫完数。
例如:第一个完全数是6,它有约数1、2、3、6,除去它本身6外,其余3个数相加,1+2+3=6。第二个完全数是28,它有约数1、2、4、7、14、28,除去它本身28外,其余5个数相加,1+2+4+7+14=28。
二,所以,在判断一个数是否完数前,先要求出该数的所有小于它的约数;
比如:对于n=6,分解出其所有约数,并求它们的和:
Dim i As Integer
Dim n As Integer
Dim s As Integer
n = 6
s = 1
For i = 2 To n - 1
If n Mod i = 0 Then s = s + i
Next i
msgbox s
这样解决了一个数是否完数的问题,现在要求出1000以内所有的完数,即:1-1000之间所有的完数。那么应该想到使得n从2(肯定不是完数)开始循环到1000,然后一一进行上述判断。
三,求出1000以内所有的完数:
Dim i As Integer
Dim n As Integer
Dim s As Integer
for n=2 to 1000
s=1
for i=2 to n-1
If n Mod i = 0 Then s = s + i
Next i
if s=n then print n
next n
追问
非常感谢
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询