«C»: Ввести с клавиатуры два натуральных числа и сравнить количество шагов цикла для вычисления их НОД с помощью обычного и модифицированного алгоритмов Евклида.Пример:Введите два числа:1998 2НОД(1998,2)=2Обычный алгоритм: 998Модифицированный: 1

15 Апр 2020 в 19:42
561 +1
1
Ответы
1
include

int euclideanAlgorithminta,intbint a, int binta,intb {
int steps = 0;
while b!=0b != 0b!=0 {
int temp = b;
b = a % b;
a = temp;
steps++;
}
std::cout << "Обычный алгоритм: " << steps << std::endl;
return a;
}

int modifiedEuclideanAlgorithminta,intbint a, int binta,intb {
int steps = 0;
while b!=0b != 0b!=0 {
a = a % b;
if (a < b) {
int temp = b;
b = a;
a = temp;
}
steps++;
}
std::cout << "Модифицированный: " << steps << std::endl;
return a;
}

int main {
int num1, num2;
std::cout << "Введите два числа: ";
std::cin >> num1 >> num2;

int gcd = euclideanAlgorithmnum1,num2num1, num2num1,num2;
std::cout << "НОД(" << num1 << ", " << num2 << ") = " << gcd << std::endl;
gcd = modifiedEuclideanAlgorithmnum1,num2num1, num2num1,num2;
std::cout << "НОД(" << num1 << ", " << num2 << ") = " << gcd << std::endl;
return 0;

}

18 Апр 2024 в 13:54
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир