求完数及其中的理解过程

类别:编程语言 点击:0 评论:0 推荐:

//求完数
#include <iostream.h>

void main()
{
  for(int i=1; i<1000; i++){
    int sum=0;
    for(int j=1; j<=i/2; j++)
      if(i%j==0)
        sum+=j;
    if(sum==i)
      cout <<i<<"是完数.\n";
  }
}
//这里不是最小因子之和,是所有可被除的因子
//错,没看清楚,这就是最小因子之和,因为第二个循环的范围是j/2;
//还是理解错误,但100的因子是 2,5,10,20,25,50;这些因子里有可以被再分的数
//注意到一个数学现象,德任何一个数的最大因子都是小于或者等于本身的一半的
//因为一个数最小的因子只能是大于等于2的哟!

其实求任何加法题目,只要放个0数在那里让程序自动在那里累加就可以了,你要做的就是判断什么符合要求的加因子就可以了!哈哈@

写的只有自己可以看明白!

本文地址:http://com.8s8s.com/it/it24727.htm