Open In App

Java Program for Common Divisors of Two Numbers

Last Updated : 23 Jul, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report

Given two integer numbers, the task is to find the count of all common divisors of given numbers?

Input : a = 12, b = 24
Output: 6
// all common divisors are 1, 2, 3, 
// 4, 6 and 12

Input : a = 3, b = 17
Output: 1
// all common divisors are 1

Input : a = 20, b = 36
Output: 3
// all common divisors are 1, 2, 4
Java
// Java implementation of program 

class Test { 
    // method to calculate gcd of two numbers 
    static int gcd(int a, int b) 
    { 
        if (a == 0) 
            return b; 

        return gcd(b % a, a); 
    } 
    // method to calculate all common divisors 
    // of two given numbers 
    // a, b --> input integer numbers 
    static int commDiv(int a, int b) 
    { 
        // find gcd of a, b 
        int n = gcd(a, b); 

        // Count divisors of n. 
        int result = 0; 
        for (int i = 1; i <= Math.sqrt(n); i++) { 
            // if 'i' is factor of n 
            if (n % i == 0) { 
                // check if divisors are equal 
                if (n / i == i) 
                    result += 1; 
                else
                    result += 2; 
            } 
        } 
        return result; 
    } 

    // Driver method 
    public static void main(String args[]) 
    { 
        int a = 12, b = 24; 
        System.out.println(commDiv(a, b)); 
    } 
} 
Output:
6

Time complexity: O(sqrt(n)) because for loop will run for sqrt(n) times and function to calculate gcd will take O(log(min(a,b))

Auxiliary Space: O(log(min(a,b)) due to recursive stack space 

Please refer complete article on Common Divisors of Two Numbers for more details!


Article Tags :
Practice Tags :

Similar Reads