# Program to find GCD of floating point numbers

• Difficulty Level : Medium
• Last Updated : 23 Jun, 2022

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

Input  : 0.48, 0.108
Output : 0.012```

The simplest approach to solve this problem is :
a=1.20
b=22.5
Expressing each of the numbers without decimals as the product of primes we get:
120 2250 Now, H.C.F. 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 do this 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 ` `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));` `    ``}` `}`   `/*This code is contributed by Nikita Tiwari.*/`

## 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)))`   `# This code is contributed by Nikita Tiwari.`

## 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));` `    ``}` `}`   `// This code is contributed by vt_m.`

## PHP

 ``

## Javascript

 ``

Output:

`0.3`

Time Complexity: O(log n)
Auxiliary Space: O(log n)

This article is contributed by Aarti_Rathi and Abhishek Sharma. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to review-team@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.