In this tutorial, I will be sharing what is Perfect number, examples of Perfect number, algorithm, and java program to check whether a given number is Perfect number or not.
Read Also : Java Program to Check Duck Number
Below are examples of numbers which are NOT Perfect numbers
List of Perfect Numbers between 1 and 10000 are : 6, 28, 496, 8128
Output :
Enter any number : 1000
1000 is Not a Perfect Number
Output :
Enter any number : 1000
1000 is Not a Perfect Number
Output :
Enter minimum number : 1
Enter maximum number : 1000
6 is a Perfect Number
28 is a Perfect Number
496 is a Perfect Number
2. Using for/while loop
a. Check if num(inputNumber) is divisible by i by using (num%i).
b. If (num%i == 0), it indicates that i is a factor(divisor) of num(inputNumber).
c. Add the value of i to the sum variable.
d. Continue till i is less than num(inputNumber).
3. Check whether the variable sum is equal to the num(inputNumber).
a. If both are equal then the inputNumber is a Perfect number.
b. Otherwise, the inputNumber is not a Perfect number.
Please mention in comments if you know any other way of implementing Perfect number program in java.
References:
Wikipedia
Read Also : Java Program to Check Duck Number
What is Perfect Number
Perfect number is a positive integer(number more than zero) that is equal to the sum of its proper positive divisors(or factors) excluding the number itself.Examples :
Number to check : 28
28 is divisible by 1,2,4,7,14 (Remember to exclude number itself i.e 28)
1 + 2 + 4 + 7 + 14 = 28 (sum of positive divisors is equal to given number 28)
// 28 is a Perfect number
Number to check : 6
6 is divisible by 1,2,3 (Remember to exclude number itself i.e 6)
1 + 2 + 3 = 6 (sum of positive divisors is equal to given number 6)// 6 is a Perfect number
Number to check : 496
496 is divisible by 1,2,4,8,16,31,62,124,248 (Remember to exclude number itself i.e 496)
1 + 2 + 4 + 8 + 16 + 31 + 62 + 124 + 248 = 496 (sum of positive divisors is equal to given number 496)
// 496 is a Perfect number
Below are examples of numbers which are NOT Perfect numbers
Number to check : 16
16 is divisible by 1,2,4,8 (Remember to exclude number itself i.e 16)
1 + 2 + 4 + 8 = 15 (sum of positive divisors is NOT equal to given number 16)
// 16 is NOT a Perfect number
Number to check : 27
27 is divisible by 1,3,9 (Remember to exclude number itself i.e 27)
1 + 3 + 9 = 13 (sum of positive divisors is NOT equal to given number 27)
// 27 is NOT a Perfect number
List of Perfect Numbers between 1 and 10000 are : 6, 28, 496, 8128
Java Program for Perfect Number using For loop
import java.util.Scanner;
public class JavaHungry {
public static void main(String args[])
{
Scanner scan = new Scanner(System.in);
System.out.println("Enter any number : ");
int inputNumber = scan.nextInt();
boolean result = isPerfectNumber(inputNumber);
if (result == true)
System.out.println(inputNumber + " is a Perfect Number");
else
System.out.println(inputNumber + " is Not a Perfect Number");
}
public static boolean isPerfectNumber(int num)
{
/* Initialize sum variable indicating
sum of divisors(factors) of inputNumber*/
int sum = 0;
for (int i=1;i < num;i++)
{
if ( num % i == 0)
{
sum = sum + i;
}
}
/* If sum variable is equal to inputNumber
then the number is Perfect Number
,otherwise not */
return (sum == num);
}
}
Output :
Enter any number : 1000
1000 is Not a Perfect Number
Java Program for Perfect Number using While loop
import java.util.Scanner;
public class JavaHungry {
public static void main(String args[])
{
Scanner scan = new Scanner(System.in);
System.out.println("Enter any number : ");
int inputNumber = scan.nextInt();
boolean result = isPerfectNumber(inputNumber);
if (result == true)
System.out.println(inputNumber + " is a Perfect Number");
else
System.out.println(inputNumber + " is Not a Perfect Number");
}
public static boolean isPerfectNumber(int num)
{
/* Initialize sum variable indicating
sum of divisors(factors) of inputNumber*/
int sum = 0; int i=1; while(i < num) { if ( num % i == 0) { sum = sum + i; } i++; }
/* If sum variable is equal to inputNumber
then the number is Perfect Number
,otherwise not */
return (sum == num); }}
Output :
Enter any number : 1000
1000 is Not a Perfect Number
Java Program for finding Perfect Number between 1 to 1000
Below java program allows the user to enter range i.e minimum and maximum value. It will find the perfect number between the minimum and maximum values.
Related Article
import java.util.Scanner;
public class JavaHungry {
public static void main(String args[])
{
Scanner scan = new Scanner(System.in);
System.out.println("Enter minimum number : ");
int min = scan.nextInt();
System.out.println("Enter maximum number : ");
int max = scan.nextInt();
isPerfectNumber(min,max);
}
public static void isPerfectNumber(int min, int max)
{
int num = 0;
for(num=min;num <= max;num++)
{
int sum =0;
for (int i=1;i < num;i++)
{
if ( num % i == 0)
{
sum = sum + i;
}
}
if (sum == num)
{
System.out.println(num + " is a Perfect Number");
}
}
}
}
Output :
Enter minimum number : 1
Enter maximum number : 1000
6 is a Perfect Number
28 is a Perfect Number
496 is a Perfect Number
Algorithm for Perfect Number
1. Initialize the sum variable value to 0. It will represent the sum of divisors(factors) of a given inputNumber.2. Using for/while loop
a. Check if num(inputNumber) is divisible by i by using (num%i).
b. If (num%i == 0), it indicates that i is a factor(divisor) of num(inputNumber).
c. Add the value of i to the sum variable.
d. Continue till i is less than num(inputNumber).
3. Check whether the variable sum is equal to the num(inputNumber).
a. If both are equal then the inputNumber is a Perfect number.
b. Otherwise, the inputNumber is not a Perfect number.
Please mention in comments if you know any other way of implementing Perfect number program in java.
References:
Wikipedia
0 Comments