java编程 求10000以内的所有完全数。我这个说答案错误?希望大家解答!!急急急急!!

2025-03-23 22:15:11
推荐回答(3个)
回答1:

//你传的图片看不清,所以没办法回答是哪里错了,我自己写了一个

public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("请输入一个数字!");
int num = scan.nextInt();
System.out.println("0-"+num+"以内的完全数有:");
//遍历0-num以内的所有整数,并验证该数字是否为完全数,如果是,就输出,如果不是,什么也不做
for(int i=3; i<=num; i++){
int sum=0;
for(int j=1;j if(i%j==0){
sum+=j;
}
}
if(sum==i){
System.out.println(i);
}
}
}

回答2:

/**
* 获取完美数
* @param num
*/
public static void getPerfectNumber(int num) {
if (num <= 0) {
return;
}
int total = 0;
for (int i = 1; i <= num; i++) {
total = 0;
for (int j = 1; j <= i; j++) {
if (i % j == 0) {
if(i != j){
total += j;
}
}
}
if(total == i){
System.err.println("完美数:"+i);
}
}
}

回答3:

            for(int i=2;i<1000;i++){
                int sum=0;
                for(int y=1;y                    if(i%y==0)
                        sum +=y;
                }
                
                if(sum==i)
                    System.out.println("sum: " + sum);
            }