//求完数 #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数在那里让程序自动在那里累加就可以了,你要做的就是判断什么符合要求的加因子就可以了!哈哈@
写的只有自己可以看明白! 
|