std :: gcd | Встроенная функция C ++ для поиска GCD

Опубликовано: 31 Декабря, 2021

Во многих задачах конкурентного программирования нам нужно найти наибольший общий делитель, также известный как gcd . Алгоритм Евклида для поиска gcd обсуждался здесь.
В C ++ есть встроенная функция вычисления НОД. Эта функция присутствует в заголовочном файле.
Синтаксис для C ++ 14:

 Библиотека: 'алгоритм'
 __gcd (м, п)
Параметр: m, n
Возвращаемое значение: 0, если m и n равны нулю, 
иначе gcd m и n.

Синтаксис для C ++ 17:

 Библиотека: 'числовая'
gcd (m, n)
Параметр: m, n
Возвращаемое значение: 0, если m и n равны нулю,
иначе gcd m и 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

Примечание. Если M или N не являются целочисленными типами или имеют (возможно, cv-квалификацию) bool, программа имеет неправильный формат. Кроме того, если | m | или | n | не может быть представлен как значение типа std :: common_type_t, поведение не определено.

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
}

Выход:
Ошибка, поскольку тип данных float не поддерживается std :: gcd.
Эта статья предоставлена Pratik Chhajer. Если вам нравится GeeksforGeeks, и вы хотели бы внести свой вклад, вы также можете написать статью, используя write.geeksforgeeks.org, или отправить свою статью по адресу электронной почты: deposit@geeksforgeeks.org. Посмотрите, как ваша статья появляется на главной странице GeeksforGeeks, и помогите другим гикам.
Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по теме, обсужденной выше.

Хотите узнать о лучших видео и практических задачах, ознакомьтесь с базовым курсом C ++ для базового и продвинутого уровня C ++ и курсом C ++ STL для базового уровня плюс STL. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .



C++