Java Program to Test Divisibility of a Number by 11 and 9 Using Recursion

In the previous article, we have discussed about Java Program to Find the Product of All Perfect Divisors of a Number Using Recursion

In this article we are going to test divisibility of a number by 11 and 9 using recursion by Java programming language.

Java Program to Test Divisibility of a Number by 11 and 9 Using Recursion

As per the problem statement you have to check the divisibility of a number by both 11 and 9.

For example:

Suppose there are 2 numbers 55 and 99.
55 is divisible by 11 but no divisible by 9.
99 is divisible by both 11 and 9.

Let’s see the program to understand it more clearly.

Method-1: Java Program to Test Divisibility of a Number by 11 and 9 By Using Recursion and Static Input Value

Approach:

  • Declare an integer variable and initialize the value for it.
  • Check for divisibility by 9 and 11 using the user-defined method.
  • Divisibility by 9 calculates the sum of digits and checks if it is divisible by 9.
  • Divisibility by 11 uses two variables that store alternate digit sums and then checks if their difference is divisible by 11.
  • Print the result.

Program:

import java.util.*;
// Main class
public class Main
{
    // Recursive method to check divisibility by 11
    public static int divisibleBy11(int num)
    {
        int sum1=0, sum2=0,diff;
        // Checks if the number has reached zero
        if(num == 0)
                return 1;
        // Checks if the number is less than 10
        if(num < 10)
                return 0;
        // Loops while the number is non-zero
        while(num>0)
        {
            sum1 += num%10;
            num /=10;
            sum2 += num%10;
            num /= 10;
        }
        // calculates the difference between the sums and calls the function
        diff = sum1>sum2 ? (sum1-sum2) : (sum2-sum1);
        return divisibleBy11(diff);
    }
    
    // Recursive method to check divisibility by 9
    public static int divisibleBy9(int num )
    {
        int digitsSum;
        // if number becomes 9 it is divisible by 9
        if(num==9)
                return 1;
        // if number becomes less than 9 it is not divisible by 9
        if(num<9)
                return 0;
        digitsSum=0;
        // Loop to find the sum of digits
        while(num>0)
        {
                digitsSum += num%10;
                num/=10;
        }
        // Recusrsive call on the sum of digits
        return divisibleBy9(digitsSum);
    }

    public static void main(String[] args)
    {
        int num = 55;
        // Check if the number is divisible by 9
        int res = divisibleBy9(num);
        // Print the result
        if(res==1)
            System.out.println(num+" is divisible by 9.");
        else
            System.out.println(num+" is not divisible by 9.");
        // Check if the number is divisible by 11
        res = divisibleBy11(num);
        // Print the result
        if(res==1)
            System.out.println(num+" is divisible by 11.");
        else
            System.out.println(num+" is not divisible by 11.");
    }
}
Output:

55 is not divisible by 9.
55 is divisible by 11.

Method-2: Java Program to Test Divisibility of a Number by 11 and 9 By Using Recursion and User Input Value

Approach:

  • Declare an integer variable and ask the user to enter value for it.
  • Check for divisibility by 9 and 11 using the user-defined method.
  • Divisibility by 9 calculates the sum of digits and checks if it is divisible by 9.
  • Divisibility by 11 uses two variables that store alternate digit sums and then checks if their difference is divisible by 11.
  • Print the result.

Program:

import java.util.*;
// Main class
public class Main
{
    // Recursive method to check divisibility by 11
    public static int divisibleBy11(int num)
    {
        int sum1=0, sum2=0,diff;
        // Checks if the number has reached zero
        if(num == 0)
                return 1;
        // Checks if the number is less than 10
        if(num < 10)
                return 0;
        // Loops while the number is non-zero
        while(num>0)
        {
            sum1 += num%10;
            num /=10;
            sum2 += num%10;
            num /= 10;
        }
        // calculates the difference between the sums and calls the function
        diff = sum1>sum2 ? (sum1-sum2) : (sum2-sum1);
        return divisibleBy11(diff);
    }
    
    // Recursive method to check divisibility by 9
    public static int divisibleBy9(int num )
    {
        int digitsSum;
        // if number becomes 9 it is divisible by 9
        if(num==9)
                return 1;
        // if number becomes less than 9 it is not divisible by 9
        if(num<9)
                return 0;
        digitsSum=0;
        // Loop to find the sum of digits
        while(num>0)
        {
                digitsSum += num%10;
                num/=10;
        }
        // Recusrsive call on the sum of digits
        return divisibleBy9(digitsSum);
    }

    public static void main(String[] args)
    {
        Scanner sc = new Scanner(System.in);
        // Asks the user for input
        System.out.println("Enter a number");
        int num = sc.nextInt();
        // Check if the number is divisible by 9
        int res = divisibleBy9(num);
        // Print the result
        if(res==1)
            System.out.println(num+" is divisible by 9.");
        else
            System.out.println(num+" is not divisible by 9.");
        // Check if the number is divisible by 11
        res = divisibleBy11(num);
        // Print the result
        if(res==1)
            System.out.println(num+" is divisible by 11.");
        else
            System.out.println(num+" is not divisible by 11.");
    }
}
Output:

Enter a number
65
65 is not divisible by 9.
65 is not divisible by 11.

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: