一个数如果恰好等于它的因子之和,这个数就称为 "完数 "。例如6=1+2+3。编程 找出1000以内的所有完数。
直接上代码:
public class Test{
public static boolean sum(int num){
int temp = 0;
for(int i = 1;i < num;i++){
if(num%i==0){
temp += i;
}
}
if(temp==num){
return true;
}
return false;
}
public static void main(String[] args) {
Test test = new Test();
for(int i = 1;i < 1000;i++){
if(test.sum(i)){
System.out.print(i + "、");
}
}
}
}
运行结果:
另一种解法:
public class Test{
public static void main(String[] args) {
for(int i = 2;i <=1000;i++){
int temp = 0;
for(int j = 1;j < i;j++){
if(i%j == 0){
temp += j;
}
}
if(temp == i){
System.out.println(temp);
}
}
}
}
运行结果: