Perfect Number In Java Program

In this tutorial , We will write perfect number program in java using for loop , while loop and recursion . Firstly we will learn what is a perfect number in java and how to find perfect number with examples.

What is a Perfect Number ?

In number theory, a perfect number is a positive integer that is equal to the sum of its positive divisors, excluding the number itself . The sum of divisors of a number, excluding the number itself, is called its aliquot sum, so a perfect number is one that is equal to its aliquot sum. Equivalently, a perfect number is a number that is half the sum of all of its positive divisors including itself; in symbols, σ1(n) = 2n where σ1 is the sum-of-divisors function. For Example , 28 is perfect number as 1 + 2 + 4 + 7 + 14 + 28 = 56 = 2 × 28. Let’s discuss perfect number example here

Example 1: Check 6 is a perfect number or not.

Positive factors are : 1,2,3 and 6

Here, the sum of all the factors of 6 excluding the number itself is equal to (1+2+3=6)6. Or Here, the sum of all the factors including the number itself is equal to 12. So 6 is perfect number here .

Example 2 : is 28 a perfect number ?

Positive factors of 28 are : 1,2,4,7,14 and 28

Here, the sum of all the factors of 28 excluding the number itself is equal to (1+2+4+7+14=28)28 . So 28 is perfect number here .

Example 3 : is 496 a perfect number ?

Positive factors of 496 are : 1, 2, 4, 8, 16, 31, 62, 124, 248 and 496

Here Again , the sum of all the factors of 496 excluding the number itself is equal to (1+2+4+8+16+31+62+124+248=496)496 . So 496 is a perfect number .

Perfect Number Program In Java

We have discussed different  perfect number example in this article till , Now we will write perfect number program in java using for loop , while loop and recursion .

Perfect Number program Using for loop

In this java program we check a given number is perfect or not

Steps to find perfect Number

1. Take num as  input from user to check perfect or not
2. initialize sum variable with zero.
3. Now find factor of num with for loop and add to sum all factors .We will iterate loop till equal n\2 here .
4. if sum is equal to given num then it is perfect

Let’s see java program implementation for this approach

``````import java.util.Scanner;

public class PerfectNumber1 {
public static void main(String[] args) {
int num, sum = 0;
Scanner scanner = new Scanner(System.in);
System.out.print("Enter an integer:");
num = scanner.nextInt();
for (int i = 1; i <= num / 2; i++) {
if (num % i == 0) {
sum = sum + i;
}
}

if (sum == num) {
System.out.println(num + " is a perfect number");
} else {
System.out.println(num + " is not a perfect number");
}

}

}``````

Output :

``````Enter an integer:50
50 is not a perfect number

and

Enter an integer:28
28 is a perfect number``````

Find Perfect Number In java Using while loop

Now we will write java program to check given number is perfect number or not using while loop . We will iterate while loop till equal num\2 and calculate sum of all factors and store in sum variable . Then check sum is equal to number or not as below .

``````import java.util.Scanner;

public class PerfectNumber2 {
public static void main(String[] args) {
int num, sum = 0;
Scanner scanner = new Scanner(System.in);
System.out.print("Enter an integer:");
num = scanner.nextInt();
int i =1 ;
while (i <= num /2) {
if (num % i == 0) {
sum = sum + i;
}
i++;
}

if (sum == num) {
System.out.println(num + " is a perfect number");
} else {
System.out.println(num + " is not a perfect number");
}

}
}``````

Output :

``````Enter an integer:28
28 is a perfect number

and

Enter an integer:90
90 is not a perfect number``````

Find Perfect Number In java Using Recursion

We will write a method which is return sum of all factors of a given number in this program . Then to find perfect number we will check sum of all factor is equal to number .

``````import java.util.Scanner;

public class PerfectNumber3 {

static int sum=0;

public static int  getSumOfFactorsOfNum(int num, int i)
{
//executes until the condition becomes false
if(i <= num/2)
{
if(num % i ==0)
{
//calculates the sum of factors
sum=sum + i;
}
//after each iteration, increments the value of variable i by 1
i++;
//recursively called function
getSumOfFactorsOfNum(num, i);
}
//returns the sum of factors of number
return sum;
}

public static void main(String[] args) {
int num;
Scanner scanner = new Scanner(System.in);
System.out.print("Enter an integer:");
num = scanner.nextInt();
int sum = getSumOfFactorsOfNum(num, 1) ;
if (sum == num) {
System.out.println(num + " is a perfect number");
} else {
System.out.println(num + " is not a perfect number");
}
}

}``````

Output :

``````Enter an integer:496
496 is a perfect number

And

Enter an integer:8128
8128 is a perfect number

``````

In this tutorial we have learn perfect number program in java using for loop , while loop  and recursion .  We have also learn about what is a perfect number , how to find perfect number and different perfect number example in java .

Reference :

Perfect Number