判断完数
完数:一个数的因子之和等于这个数本身;例如:6=1+2+3;
求1000以内有多少个完数?
分析:
1.得到某个数的所有因子
2.计算因子之和
3.判断和是否等于这个数
public class IsPerfectNumber {
public static void main(String[] args) {
Utils util=new Utils();
for(int i=1;i<1000;i++){
if(util.getArraySum(util.getNum(i))==i){
System.out.println(i+"这个数是完数");
}
}
}}
public class Utils {
//1.得到某个数的所有因子
public int[] getNum(int num) {
int time = 0;
for (int i = 1; i < num; i++) {
if (num % i == 0) {
time++;
}
}
int array[] = new int[time];
time = 0;
for (int i = 1; i < num; i++) {
if (num % i == 0) {
array[time] = i;
time++;
}
}
return array;
}
//2.计算因子之和
public int getArraySum(int array[]) {
int sum = 0;
for (int i = 0; i < array.length; i++) {
sum += array[i];
}
return sum;
}
}