xiaohaha007 发表于 2010-9-10 15:11

请教一下这个程序是什么意思,尤其是最里面的那个if循环

for m=1:500
s=0;
for k=1:m/2
if rem(m,k)==0
s=s+k;
end
end
if m==s
    disp(m);
end
end

qibbxxt 发表于 2010-9-10 16:05

本帖最后由 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=

xiaohaha007 发表于 2010-9-10 17:38

谢谢高手指点啊
页: [1]
查看完整版本: 请教一下这个程序是什么意思,尤其是最里面的那个if循环