编写一个算法,打印从 1 到 n 的完美数。确定一个数是否完美,将小于该数的所有因数相加。如果总和等于数字,那就完美了。
import java.util.Scanner;
public class Assign_6 {
public static void main(String[] args){
int num,number,sum=0,factor;
System.out.print("Enter Number");
Scanner keyboard = new Scanner (System.in);
number=keyboard.nextInt();
for (num=1;num<number;num++){
for(factor=1;factor<number;factor++){
if(num%factor==0){
sum= sum+factor;
}
if(sum==num){
System.out.println(sum);
}
sum=0;
}
}
}
}
输出:24
什么都没有打印出来。不知道怎么回事。我哪里错了?我只能使用 while、for 和 else-if 语句。