Open In App

Program to find GCD of floating point numbers

Last Updated : 12 Feb, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report

The greatest common divisor (GCD) of two or more numbers, which are not all zero, is the largest positive number that divides each of the numbers. 
Example:  

Input : 0.3, 0.9
Output : 0.3
Explanation: The GCD of 0.3 and 0.9 is 0.3 because both numbers share 0.3 as the largest common divisor.

Input : 0.48, 0.108
Output : 0.012
Explanation: The GCD of 0.48 and 0.108 is 0.012 because 0.012 is the largest value that divides both numbers exactly.

The approach to solve this problem is to expressing each of the numbers without decimals as the product of primes we get:

For Example
a = 1.20, b = 22.5 
120 = 2^3*3*5    
2250 = 2*3^2*5^3    

Now, GCD of 120 and 2250 = 2*3*5=30 
Therefore, the H.C.F. of 1.20 and 22.5 = 0.30 (taking 2 decimal places)

We can find GCD using the Euclidean algorithm. This algorithm indicates that if the smaller number is subtracted from a bigger number, GCD of two numbers doesn’t change.  

C++
// CPP code for finding the GCD of two floating
// numbers.
#include <bits/stdc++.h>
using namespace std;

// Recursive function to return gcd of a and b
double gcd(double a, double b)
{
    if (a < b)
        return gcd(b, a);

    // base case
    if (fabs(b) < 0.001)
        return a;

    else
        return (gcd(b, a - floor(a / b) * b));
}

// Driver Function.
int main()
{
    double a = 1.20, b = 22.5;
    cout << gcd(a, b);
    return 0;
}
Java
// JAVA code for finding the GCD of 
// two floating numbers.
import java.io.*;

class GFG {
    
    // Recursive function to return gcd 
    // of a and b
    static double gcd(double a, double b)
    {
        if (a < b)
            return gcd(b, a);
     
        // base case
        if (Math.abs(b) < 0.001)
            return a;
     
        else
            return (gcd(b, a - 
                   Math.floor(a / b) * b));
    }
     
    // Driver Function.
    public static void main(String args[])
    {
        double a = 1.20, b = 22.5;
        System.out.printf("%.1f" ,gcd(a, b));
    }
}
Python
# Python code for finding the GCD of
# two floating numbers.

import math

# Recursive function to return gcd 
# of a and b
def gcd(a,b) :
    if (a < b) :
        return gcd(b, a)
    
    # base case
    if (abs(b) < 0.001) :
        return a
    else :
        return (gcd(b, a - math.floor(a / b) * b))
    
     
# Driver Function.
a = 1.20
b = 22.5
print('{0:.1f}'.format(gcd(a, b)))
C#
// C# code for finding the GCD of 
// two floating numbers.
using System;

class GFG {
    
    // Recursive function to return gcd 
    // of a and b
    static float  gcd(double a, double b)
    {
        if (a < b)
            return gcd(b, a);
    
        // base case
        if (Math.Abs(b) < 0.001)
            return (float)a;
    
        else
            return (float)(gcd(b, a - 
                Math.Floor(a / b) * b));
    }
    
    // Driver Function.
    public static void Main()
    {
        double a = 1.20, b = 22.5;

        Console.WriteLine(gcd(a, b));
    }
}
JavaScript
<script>
// javascript code for finding the GCD of 
// two floating numbers.

    // Recursive function to return gcd
    // of a and b
    function gcd(a , b)
    {
        if (a < b)
            return gcd(b, a);

        // base case
        if (Math.abs(b) < 0.001)
            return a;
        else
            return (gcd(b, a - Math.floor(a / b) * b));
    }

    // Driver Function.    
    var a = 1.20, b = 22.5;
    document.write( gcd(a, b).toFixed(1));

// This code is contributed by aashish1995 
</script>
PHP
<?php
// PHP code for finding the GCD
// of two floating numbers.

// Recursive function to 
// return gcd of a and b
function gcd($a, $b)
{
    if ($a < $b)
        return gcd($b, $a);

    // base case
    if (abs($b) < 0.001)
        return $a;

    else
        return (gcd($b, $a -
              floor($a / $b) * $b));
}

// Driver Code
$a = 1.20;
$b = 22.5;
echo gcd($a, $b);


?>

Output
0.3



Next Article
Article Tags :
Practice Tags :

Similar Reads