请教一下这个程序是什么意思,尤其是最里面的那个if循环
for m=1:500s=0;
for k=1:m/2
if rem(m,k)==0
s=s+k;
end
end
if m==s
disp(m);
end
end
本帖最后由 coohit 于 2016-9-14 11:29 编辑
这就是找到完全数:
来自:百度百科简介
完全数(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。后面的数是496、8128等等。
例如:
6=1+2+3
28=1+2+4+7+14
496=1+2+4+8+16+31+62+124+248
8128=1+2+4+8+16+32+64+127+254+508+1016+2032+4064
关于这一点:我写过一些程序:
比如:a=1:14;
c=(2.^a(isprime(2.^a-1))-1).*2.^(a(isprime(2.^a-1))-1)想深入可以看我另一个帖子:http://forum.vibunion.com/forum.php?mod=viewthread&tid=148351&pid=852481&page=1&extra=
谢谢高手指点啊
页:
[1]