Java Program to Check Perfect Number or Not

  • Write a java program to check whether a number is perfect number or not.

A perfect number is a number whose sum of all the divisors is equal to the number itself.
Examples of Perfect Numbers :
6 = 1 + 2 + 3, (1, 2 and 3 are proper divisors of 6).
28 = 1 + 2 + 4 + 7 + 14 (1, 2, 4, 7, 14 are proper divisors of 28).

In this java program, we have to check whether a given number is an perfect number or not and print the result on screen.

Algorithm to check a number is perfect number or not
Let N be the given number.
  • Find all divisors of a N between 1 to N/2.
  • Add the values of all divisors to a variable sum.
  • If sum is equal to N, then N is a perfect number otherwise not a perfect number.

Java program to check perfect number or not using loop

This program first takes a number as input from user and stores it in variable 'N'. Using a for loop, we iterate from 1 to N/2 to find the sum of all divisors of N. If divisor sum is equal to N, then N is a perfect number else not a perfect number.

package com.tcc.java.programs;

import java.util.Scanner;

/**
 * Java Program to check a number is perfect number or not
 */
public class PerfectNumber {
    public static void main(String[] args) {
        int N, i, divSum;
        Scanner scanner;
        scanner = new Scanner(System.in);

        System.out.println("Enter an Integer");
        N = scanner.nextInt();

        /*
         * Find the sum of all divisors of a N between 1 to N/2
         */
        for (divSum = 0, i = 1; i <= N / 2; i++) {
            if (N % i == 0) {
                divSum += i;
            }
        }

        /*
         * Check if divSum is equal to N. If true then N is Perfect Number
         */
        if (divSum == N)
            System.out.format("%d is Perfect Number", N);
        else
            System.out.format("%d is Not a Perfect Number", N);
    }
}
Output
Enter an Integer
6
6 is Perfect Number
Enter an Integer
12
12 is Not a Perfect Number