temp=0
wanshu=0
for j=1:10000
for k=1:j-1
if mod(j,k)==0
temp=[temp k]
end
end
if j==sum(temp)
wanshu=[wanshu j]
end
temp=0
end
disp(wanshu)
答案 6 28 4968128
1、解题思路:所谓完数是一些特殊的自然数。如果一个数恰好等于它的因子之和,则称该数为“完全数”。先定义一个函数用于判断一个数是否是完数,接着依次从2到5000依次循环判断。
2、参考代码:
#include <stdio.h>int fun(int n){//判断n是否是完数
int i,sum=0
for(i=1i<ni++)
if(n%i==0) sum+=i
if(sum==i) return 1
return 0
}
int main ()
{
int i
for(i=2i<5000i++)
if(fun(i))
printf("%d ",i)
return 0
}
3、运行结果:6 28 496
1、启动VB6.0,新建一个标准exe工程。
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运行测试,这样就完成了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)