Java 无法在循环中嵌套完全数测试

Java 无法在循环中嵌套完全数测试,java,Java,我正在尝试为一系列数字创建一个完美数字测试,其中n是起始数字,endNum是结束数字。它不会正确地循环,但是完美数测试(在“while”循环中的部分)可以自己工作。我做错了什么 import java.util.Arrays; import java.util.Scanner; public class CodingChallenge3 { public static void main(String[] args) { int n, sum = 0; Scanner s

我正在尝试为一系列数字创建一个完美数字测试,其中n是起始数字,endNum是结束数字。它不会正确地循环,但是完美数测试(在“while”循环中的部分)可以自己工作。我做错了什么

import java.util.Arrays;
import java.util.Scanner;

public class CodingChallenge3 {

public static void main(String[] args) {

    int n, sum = 0;
    Scanner s = new Scanner(System.in);
    System.out.print("Welcome to the Perfect Number Tester."
                        + "\n" + "Enter a number range."
                        + "\n" + "From: ");
    n = s.nextInt();
    System.out.print("To: ");
    int endNum = s.nextInt();

    while (n <= endNum) {

        for (int i = 1; i < n; i++) {
            if (n % i == 0) {
                sum = sum + i;
            }
        }

        if (sum == n && n != 0) {
            System.out.println(n + " is perfect");
        }

        if (sum > n) {
            System.out.println(n + " is imperfect abundant");
        }

        if (sum < n) {
            System.out.println(n + " is imperfect deficient");
        }

        if (n == 0) {
            System.out.println(n + " has no factors");
        }
        n++;
    }

}
导入java.util.array;
导入java.util.Scanner;
公共类编码挑战3{
公共静态void main(字符串[]args){
int n,和=0;
扫描仪s=新的扫描仪(System.in);
System.out.print(“欢迎使用完美数字测试仪。”
+\n“+”请输入一个数字范围
+“\n”+”来自:”;
n=s.nextInt();
系统输出打印(“至:”);
int endNum=s.nextInt();
while(n){
System.out.println(n+“不完全充裕”);
}
如果(总和

}

您忘记重置
n
的每个值的总和:

while (n <= endNum) {
    sum = 0; // add this
    for (int i = 1; i < n; i++) {
        if (n % i == 0) {
            sum = sum + i;
        }
    }

    if (sum == n && n != 0) {
        System.out.println(n + " is perfect");
    }

    if (sum > n) {
        System.out.println(n + " is imperfect abundant");
    }

    if (sum < n) {
        System.out.println(n + " is imperfect deficient");
    }

    if (n == 0) {
        System.out.println(n + " has no factors");
    }
    n++;
}
while(n){
System.out.println(n+“不完全充裕”);
}
如果(总和
您忘记重置
n
的每个值的总和:

while (n <= endNum) {
    sum = 0; // add this
    for (int i = 1; i < n; i++) {
        if (n % i == 0) {
            sum = sum + i;
        }
    }

    if (sum == n && n != 0) {
        System.out.println(n + " is perfect");
    }

    if (sum > n) {
        System.out.println(n + " is imperfect abundant");
    }

    if (sum < n) {
        System.out.println(n + " is imperfect deficient");
    }

    if (n == 0) {
        System.out.println(n + " has no factors");
    }
    n++;
}
while(n){
System.out.println(n+“不完全充裕”);
}
如果(总和
Genius!!非常感谢。我会在十分钟内接受你的答案,当它是我的时候。“IrenaRich作为旁观者,你应该考虑使用<代码>如果其他的< /代码>ladder@Neeraj谢谢你,我会的。天才!!非常感谢。我会在十分钟内接受你的答案,当它是我的时候。“IrenaRich作为旁观者,你应该考虑使用<代码>如果其他的< /代码>ladder@Neeraj谢谢你,我会的。