题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程 找出1000以内的所有完数。
题目分析:分别求出所有因数相加,与原数比较
public static void perfectNum() {
for (int i = 1; i <= 1000; i++) {
//判断完数
if (feb(i)) {
System.out.print(i + " ");
}
}
}
public static boolean feb(int k) {
int sum=0;
//1为完数 无须分解因数
if (k == 1) {
return true;
}
//分解因数并求和
for (int i = 1; i <= (k / 2); i++) {
if (k % i == 0) {
sum += i;
}
}
//判断是否和原数相等
if(k==sum){
return true;
}
else{
return false;
}
}