I'm just trying to print the perfect numbers within a certain upper limit, but I get other numbers that show up, that aren't perfect numbers. I'm not trying to use a method, rather than just everything in the main loop. I need some help.
public static void main(String arg[]) {
int upper;
int sum = 0;
int i;
System.out.println("Enter upper limit");
Scanner stnd = new Scanner(System.in);
upper = stnd.nextInt();
for(int n = 1; n < upper; n++) {
i = 1;
sum = 0;
while (i <= n/2) {
if (n%i == 0) {
sum = sum + i;
}
i++;
if(sum == n) {
System.out.println(n+" is a perfect number");
break;
} else {
}
}
}
}