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