En muchos problemas de programación competitivos, necesitamos encontrar el máximo común divisor, también conocido como mcd . El algoritmo de Euclides para encontrar gcd se ha discutido aquí .
C++ tiene la función incorporada para calcular GCD. Esta función está presente en el archivo de encabezado.
Sintaxis para C++14:
Library: 'algorithm' __gcd(m, n) Parameter : m, n Return Value : 0 if both m and n are zero, else gcd of m and n.
Sintaxis para C++17:
Library: 'numeric' gcd(m, n) Parameter : m, n Return Value : 0 if both m and n are zero, else gcd of m and n.
CPP
// CPP program to illustrate // gcd function of C++ STL #include <iostream> #include <algorithm> // #include<numeric> for C++17 using namespace std; int main() { cout << "gcd(6, 20) = " << __gcd(6, 20) << endl; // gcd(2.0,8) for C++17 }
gcd(6, 20) = 2
Complejidad de tiempo: O (logn)
Espacio Auxiliar: O(1)
Nota: Si M o N no es un tipo entero, o si cualquiera es (posiblemente calificado como cv) bool, el programa está mal formado. Además, si bien |m| o |n| no se puede representar como un valor de tipo std::common_type_t, el comportamiento no está definido.
CPP
// CPP program to illustrate // undefined behavior of // gcd function of C++ STL #include <iostream> #include <algorithm> // #include<numeric> for C++17 using namespace std; int main() { cout << "gcd(6, 20) = " << __gcd(2.0, 8) << endl; // gcd(2.0,8) for C++17 }
Salida:
Error, ya que el tipo de datos flotante no es compatible con std::gcd.
Este artículo es una contribución de Pratik Chhajer . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA