Problem09 求完数
题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。
分析:例如6=1+2+3.
编程找出1000以内的所有完数。
假如整数n除以m,结果是无余数的整数,那么我们称m就是n的因子。
1 public class Problem09 { 2 //题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。 3 //例如6=1+2+3. 4 //编程找出1000以内的所有完数。 5 //假如整数n除以m,结果是无余数的整数,那么我们称m就是n的因子。 6 public static void main(String args[]) { 7 for(int i=1; i<=1000; i++) { 8 int sum = 0; 9 for(int j=1; j<i; j++) { 10 if(i%j==0) { 11 //如果可以整除,说明j是i的因子 12 sum += j; 13 } 14 } 15 if(sum == i) { 16 //若一个数的所有因子相加等于它本身,说明它是完数 17 System.out.println(sum); 18 } 19 } 20 } 21 }
输出结果:
1 6 2 28 3 496