题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如 6=1+2+3.编程找出 1000 以内的
所有完数。
1 /* 2 * 题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如 6=1+2+3.编程找出 1000 以内的所有完数。 3 * 4 * 本题的关键是求出选取数值i的因子,即从1到i-1范围内能整除i的数,看某一个数j是否为i的因子, 5 * 可利用语句if(i%j==0)进行判断,求某一个数的所有因子,需要在1到i-1范围内进行遍历,同样 6 * 釆用循环实现。因此,本题从整体上看可利用两层循环来实现。外层循环控制该数的范围2?n;内层循 7 * 环j控制除数的范围为1?i,通过i对j取余,是否等于0,找到该数的各个因子 8 */ 9 public class Test9{ 10 11 public static void main(String[] args) { 12 int s = 0; 13 for(int i = 2;i<1000;i++) 14 { 15 s=0; 16 for(int j=1;j<i;j++) 17 { 18 if(i%j==0) 19 s+=j;//因数之和 20 } 21 if(s==i) 22 { 23 System.out.println(i); 24 } 25 } 26 27 } 28 29 }