In the previous article, we have discussed about Java Program to Reverse a Stack by Using Recursion
In this article we are going to see how we can find the sum of all perfect divisors of a number using recursion by Java programming language.
Java Program to Find the Sum of All Perfect Divisors of a Number Using Recursion
Perfect divisors are all the numbers which leave zero as remainder when dividing.
Let’s see the program to understand it more clearly.
- Java Program to Find the Sum of All Perfect Divisors of a Number By Using Recursion & Static Input Value
- Java Program to Find the Sum of All Perfect Divisors of a Number By Using Recursion & User Input Value
Method-1: Java Program to Find the Sum of All Perfect Divisors of a Number By Using Recursion & Static Input Value
Approach:
- Store a number in a variable.
- Pass the number and its half into the user defined method
divisorSum()
as parameter. - The method decrements the divisor for each recursive call and goes on printing the perfect divisor and returns the sum at the end.
- Print the sum.
Program:
import java.util.*; // Main class public class Main { // Recursive method to find sum of perfect divisors public static int divisorSum(int num, int x) { // If the divisor reaches 1 if(x==1) { // Prints the divisor System.out.println(x+" "); return 1; } // If x is a perfect divisor if(num%x==0) { // Prints the divisor System.out.print(x+" + "); // Recursively calls the function by decrementing the divisor return x + divisorSum(num,x-1); } else // Recursively calls the function by decrementing the divisor return divisorSum(num,x-1); } public static void main(String[] args) { int num = 55; System.out.println("Perfect divisors of 55 are:"); // Check if the number is divisible by 9 int res = divisorSum(num,num/2); // Print the result System.out.print("Sum = "+res); } }
Output: Perfect divisors of 55 are: 11 + 5 + 1 Sum = 17
Method-2: Java Program to Find the Sum of All Perfect Divisors of a Number By Using Recursion & User Input Value
Approach:
- Ask the user to enter a number and store it.
- Pass the number and its half into the user defined method
divisorSum( )
as parameter. - The method decrements the divisor for each recursive call and goes on printing the perfect divisor and returns the sum at the end.
- Print the sum.
Program:
import java.util.*; // Main class public class Main { // Recursive method to find sum of perfect divisors public static int divisorSum(int num, int x) { // If the divisor reaches 1 if(x==1) { // Prints the divisor System.out.println(x+" "); return 1; } // If x is a perfect divisor if(num%x==0) { // Prints the divisor System.out.print(x+" + "); // Recursively calls the function by decrementing the divisor return x + divisorSum(num,x-1); } else // Recursively calls the function by decrementing the divisor return divisorSum(num,x-1); } public static void main(String[] args) { Scanner sc = new Scanner(System.in); // Ask the user for input System.out.println("Enter a number"); int num = sc.nextInt(); System.out.println("Perfect divisors of "+num+" are"); // Finding the perfect divisors by calling the method and storing the sum int sum = divisorSum(num,num/2); // Print the result System.out.print("Sum = "+sum); } }
Output: Enter a number 64 Perfect divisors of 64 are 32 + 16 + 8 + 4 + 2 + 1 Sum = 63
Don’t stop learning now. Get hold of all the important Java fundamentals with the Simple java program example guide and practice well.
Related Java Programs:
- Java Program to Find Number of Ways to Express a Number as Sum of Powers by Using Recursion
- Java Program to Find Sum of All Subsets of a Given Set by Using recursion
- Java Program to Find the Product of All Perfect Divisors of a Number Using Recursion
- Java Program to Test Divisibility by 11 and 9 Using Recursion