Perfect Number Program for Java
Updated on Dec 30, 2024 | 13 min read | 6.1k views
Share:
For working professionals
For fresh graduates
More
Updated on Dec 30, 2024 | 13 min read | 6.1k views
Share:
A number is said to be perfect if it is equal to its proper divisors’ sum. Thus, the sum of all positive divisors is equivalent to a number itself for a perfect number. The sum of the divisors of any number, while not including the number itself, is called its aliquot sum. Hence, each perfect number is equivalent to its aliquot sum.
A perfect number is that number equal to half of all its positive divisors’ sum, including itself. Euclid has termed a perfect number as a perfect, ideal, or complete number. The first few perfect numbers include 6, 28, 496, and 8128.
Example1: 6
Positive factors are; 1,2,3,6
Here, the sum of all the aspects excluding the number itself is equal to 6.
Example2: 28
Positive factors are; 1, 2,4,7,14,28
Another time the sum of all the issues, not including the number itself, comes out to be 28.
Now that you are clear with the meaning of a perfect number let us move headed for the next segment.
Check out our free technology courses to get an edge over the competition.
Let us understand it with the help of a function’s example. The following is the function for a perfect number.
Function to Check if the input Number is Perfect Number or Not:
The two leading solutions for finding a perfect number in java are:
It involves going through every number from 1 to n-1 while checking if it is a divisor. The sum of all divisors is maintained throughout the process. Once the sum of all divisors is equal to n, the solution then returns to true. The answer returns to false in an otherwise situation.
It involves going through every number until the square root of n is reached. Look for any number “i” that divides n. The next step is to add both “i” and n/i to the sum.
Learn Software Development Courses online from the World’s top Universities. Earn Executive PG Programs, Advanced Certificate Programs or Masters Programs to fast-track your career.
Input:
Output:
Approaches to Find a Perfect Number in Java
There are two main approaches to find a perfect number in java. These are:
Input:
Output:
An iterative approach, “while loop,” is used to find divisors of the number and then get the sum of the divisors. The steps for adopting an iterative approach are:
Input:
Output:
This approach reduces the code statements as it doesn’t use “while loop.” The steps for adopting the recursive approach are:
Input:
Output:
This program permits the developer to enter any number. It checks the validity of a perfect number using the “java for loop.” First of all, there is a declaration of three integer variables, i.e.,” i,” number, and sum=0. Thus, the statement asks the user to enter any positive integer assigned to the variable number.
In the following line, “for loop” is introduced. The condition inside the “for loop” (i< number) makes sure that “i” should never exceed the number. An “if condition” is used inside this “for loop.” This is done to check if the number is completely divisible by “i” or not. There are two situations:
Working Principle of “for loop” in this program:
The user has entered six as the input number. The working principle of “for loop” can be understood in an iteration-wise manner.
Here number= 6, sum= 0, and “i”= 1. The condition inside the “for loop” (1<6) is true, and hence, the program will start executing the statements inside the “for loop.” Within this “for loop,” there is an “if-else” statement and the condition “if (6%1= = 0) is true. Thus, sum= sum+“i.” Thus sum= 0+1= 1. At the end, “i” will be incremented by 1.
In the second iteration, both the values of sum and “i” have changed as sum= one and “i”= 2. Now the condition inside the “for loop” (2<6) is true. Now, with in the “for loop”, the if condition if (6% 2= = 0) is true. Thus, the new sum will be incremented by “i.’ Hence, the sum= 1+2= 3. In the end, “i” is incremented by 1.
In the third iteration, the values of sum= three and “i”= 3. The condition inside the “for loop” (3<6) is true. The if condition if (6% 2= = 0) is true within the “for loop.” Thus, the new sum will be incremented by “i.” Hence, the sum= 3+3= 6. In the end, “i” is incremented by 1.
The if condition fails in both fourth and fifth iterations. This is as:
If (6 % 4 = =0) is false and If (6 % 5 = =0) is also false.
In the sixth iteration, the java compiler will end the “for loop” due to its failure. This is because the value of “i” becomes six, which means that the “for loop” fails as (6 < 6).
At the next step, the “if condition” if (sum = = number), is checked. If this condition is true, then system.out.format( “\n% d is a Perfect Number” , Number) ; is executed. Otherwise, system.out.format( “\n% d is NOT a Perfect Number” , Number) ; is executed.
Input:
Output:
This program also allows the programmer to enter any number. The number thus entered is validated to be a perfect number using “While Loop.” The program executes in the same manner, just like in the “for loop.”
Input:
Output:
In this program, the value entered by the user is passed to the method that is created. It will use java “for loop” to check if the number is a perfect number or not.
A function is called as the previous function is declared as void. It is
PerfectNumber (Number) ;
Hence, when the compiler reaches to PerfectNumber (Number) line in the main() program, the compiler immediately jumps to the following function mentioned below
public static void PerfectNumber (int Number) {
Input:
Output:
In this java program, the code is divided using object-oriented programming. A function is created to find the factors of the given number and to calculate the factors’ addition. After this, another function is declared to check if the first function return value is equal to the function parameter or not.
First of all, a class is created that is used to hold a method to find the sum of factors. An instance of the class thus created, and the methods are called.
PerfectNumber Class Analysis:
A function is created to find the factors of the given input number and then summing up all factors.
Main Class Analysis:
An instance or object of the PerfectNumber class is created. It is
PerfectNumber pn = new PerfectNumber () ;
In the next step, FindPerfectNumber(Number) method is called. It returns an integer value that is assigned to the sum. It is
Sum = pn.FindPerfectNumber(Number) ;
In the end, the java “if-else” statement is used to check if the return value is equal to the specified number defined by the user or not.
There is an option to create one more method inside the PerfectNumber class. This method checks whether the sum is equal to the number or not.
Input:
Output:
In this program, the user can add the minimum and maximum values. This program will find the perfect number between the minimum and maximum values.
In this program, different statements are used that ask for the minimum and maximum values. Once the minimum and maximum values are assigned to the variables, “for loop” is used. Iterations start between the minimum and maximum values.
for (Number = Minimum; Number <= Maximum; Number++) {
Hence, the program checks for the perfect number.
Input:
Output:
In this program a user-defined method checkPerfectSqaure() is created. It takes a number as an input parameter and reverts to true if the number is a perfect square. Otherwise, it returns to false.
In this program, two of the Math class methods, i.e., sqrt() method and floor() method, are used. The Math.sqrt() method determines the square root of the input number. The floor() method determines the nearest integer of the square root value reverted by the sqrt() method.
Then, the difference obtained by subtracting these two is calculated. The next step is to check whether this difference is non-zero or zero. If the difference is zero, then the number is a perfect square. This is due to the reason that a perfect square number’s square root is the integer itself.
Points to Remember: Perfect Number in Java
Get Free Consultation
By submitting, I accept the T&C and
Privacy Policy
India’s #1 Tech University
Executive PG Certification in AI-Powered Full Stack Development
77%
seats filled
Top Resources