一、数学背景介绍:如果一个数恰好等于其因子之和,这个数就称为完美。例如,6=1+2+3,6就是一个完数。而第二个完数是28,28=1+2+4+7+14。完数在自然数中很少。据统计,在1~4000万这么多的自然数里,只有7个完数,依次是6,28,496,8128,120816,2096128,33550336。
二、要求编写代码实现找出10000以内的所有完数。
package com.js.math;
/**
* 完数
* @author js
*
*/
public class PerfectNum {
public static void main(String[] args) {
int[] p = new int[300];
int i,num,count,s,c=0;
for(num=2;num<=10000;num++){
count = 0;
s = num;
for(i=1;i<num;i++){
if(num%i==0){
p[count++] = i;
s-=i;
}
}
if(s==0){
System.out.println(num+"是一个完数");
c++;
}
}
System.out.println("共找到"+c+"个完数");
}
}