## Free Data Structures and Algorithms Course

### Write a menu‐driven class to accept a number from the user and check whether it is a Perfect number or not in Java.

Program to demonstrate a menu‐driven class to accept a number from the user and check whether it is a Perfect number or not in Java.

Perfect number – a number is called a Perfect number if it is equal to the sum of its factors other
than the number itself. Example: 6 = 1 + 2 + 3.

```package com.hubberspot.java.example;

import java.util.Scanner;

public class PerfectNumberTest {

public static void main(String[] args) {

char program;
Scanner scanner = new Scanner(System.in);
do {

System.out.println("Press 'P' for Perfect Number Test or 'E' for Exit");

program = scanner.nextLine().toUpperCase().charAt(0);

if(program != 'P' && program != 'E') {
System.out.println();
System.out.println("You entered : " + program);
System.out.println("Please enter P or E to proceed ... try again");
System.out.println();
continue;
}
else {
switch( program )
{
case 'P':
System.out.print( "Enter number for Perfect Number checking: " );

int number = scanner.nextInt();
String line = scanner.nextLine();

if( isPerfectNumber( number ) )
{
System.out.println( number + " is a perfect number." );
}
else
{
System.out.println( number + " is not a perfect number." );
}
break;
}
}

System.out.println();

if( program == 'E') {
System.out.println("Exiting from the program...");
}
}
while(program != 'E');

}

private static boolean isPerfectNumber(int number) {

int sumOfFactors = 0;

for( int i = 1; i < number; i++ )
{
if( (number % i ) == 0 )
{
sumOfFactors = sumOfFactors + i;
}
}
return( sumOfFactors == number );

}

}

```
Output of the program :

© 2021 Learn Java by Examples Template by Hubberspot