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 <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)); } } /*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
<?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 ); // This code is contributed // by aj_36 ?> |
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> |
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 neveropen 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 neveropen main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 neveropen!