# C++ Program for Common Divisors of Two Numbers?

C++Server Side ProgrammingProgramming

#### C in Depth: The Complete C Programming Guide for Beginners

45 Lectures 4.5 hours

#### Practical C++: Learn C++ Basics Step by Step

Most Popular

50 Lectures 4.5 hours

#### Master C and Embedded C Programming- Learn as you go

66 Lectures 5.5 hours

Here we will see how we can get the number of common divisors of two numbers. We are not going to find all common divisors, but we will count how many common divisors are there. If two numbers are like 12 and 24, then common divisors are 1, 2, 3, 4, 6, 12. So there are 6 common divisors, so the answer will be 6.

## Algorithm

### countCommonDivisor(a, b)

begin
count := 0
gcd := gcd of a and b
for i := 1 to square root of gcd, do
if gcd is divisible by 0, then
if gcd / i = i, then
count := count + 1
else
count := count + 2
enf if
end if
done
return count
end

## Example

Live Demo

#include<iostream>
#include<cmath>
using namespace std;
int gcd(int a, int b) {
if (a == 0)
return b;
return gcd(b%a, a);
}
int countCommonDivisors(int a,int b) {
int gcd_val = gcd(a, b); //get gcd of a and b
int count = 0;
for (int i=1; i<=sqrt(gcd_val); i++) {
if (gcd_val%i==0) { // when'i' is factor of n
if (gcd_val/i == i) //if two numbers are same
count += 1;
else
count += 2;
}
}
return count;
}
main() {
int a = 12, b = 24;
cout << "Total common divisors: " << countCommonDivisors(a, b);
}

## Output

The differences array: 6 5 10 1