一、什么是完数呢?
完全数(Perfect number),又称完美数或完备数,是一些特殊的自然数。它所有的真因子(即除了自身以外的约数)的和(即因子函数),恰好等于它本身。
eg:6是完数 :6=1+2+3;且1,2,3是6的真因子
28是完数:28=1+2+4+7+14;且1,2,4,7,14是28的所有真因子
二、如何求一个数number的所有真因子?
for(int j = 1;j<number;j++) {
if(number%j==0) {
System.out.print(j+" ");//输出的是number的真因子
}
}
三、求1-10000所有完数的和?
import java.util.*;
public class Wannumber {
public static void main(String[] args) {
// TODO Auto-generated method stub
int sum = 0;
int sum1 = 0;
System.out.println("1-10000的完数:");
for(int i = 1;i<=10000;i++) {
for(int j = 1;j<i;j++) {
if(i%j==0) {
sum1 = sum1+j;
}
}
if(sum1==i) {
System.out.print(i+" ");
sum = sum+i;
}
sum1 = 0;
}
// TODO Auto-generated method stub
int sum = 0;
int sum1 = 0;
System.out.println("1-10000的完数:");
for(int i = 1;i<=10000;i++) {
for(int j = 1;j<i;j++) {
if(i%j==0) {
sum1 = sum1+j;
}
}
if(sum1==i) {
System.out.print(i+" ");
sum = sum+i;
}
sum1 = 0;
}
System.out.println();
System.out.println("1-10000完数的和:");
System.out.println(sum);
}
System.out.println("1-10000完数的和:");
System.out.println(sum);
}
}
输出:
1-10000的完数:
6 28 496 8128
1-10000完数的和:
8658