Check Perfect Number in Java

Check whether a number is a perfect number (sum of proper divisors equals the number).

IntermediateModule 2: Conditional ProgramsExample 6 of 20
check-perfect-number.java
1import java.util.Scanner;
2
3public class Main {
4 public static void main(String[] args) {
5 Scanner sc = new Scanner(System.in);
6
7 System.out.print("Enter a number: ");
8 int n = sc.nextInt();
9
10 int sum = 0;
11 for (int i = 1; i <= n / 2; i++) {
12 if (n % i == 0) {
13 sum += i;
14 }
15 }
16
17 if (sum == n && n != 0) {
18 System.out.println(n + " is a Perfect Number");
19 } else {
20 System.out.println(n + " is not a Perfect Number");
21 }
22
23 sc.close();
24 }
25}

Output

Enter a number: 28
28 is a Perfect Number

What's going on

We sum all positive divisors less than the number; if this sum equals the number, it is perfect.