//求完数
#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