«C»: Ввести с клавиатуры два натуральных числа и сравнить количество шагов цикла для вычисления их НОД с помощью обычного и модифицированного алгоритмов Евклида.Пример:Введите два числа:1998 2НОД(1998,2)=2Обычный алгоритм: 998Модифицированный: 1
int euclideanAlgorithm(int a, int b) { int steps = 0; while (b != 0) { int temp = b; b = a % b; a = temp; steps++; } std::cout << "Обычный алгоритм: " << steps << std::endl; return a; }
int modifiedEuclideanAlgorithm(int a, int b) { int steps = 0; while (b != 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 euclideanAlgorithm(int a, int b) {
int steps = 0;
while (b != 0) {
int temp = b;
b = a % b;
a = temp;
steps++;
}
std::cout << "Обычный алгоритм: " << steps << std::endl;
return a;
}
int modifiedEuclideanAlgorithm(int a, int b) {
int steps = 0;
while (b != 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 gcd = euclideanAlgorithm(num1, num2);int num1, num2;
std::cout << "Введите два числа: ";
std::cin >> num1 >> num2;
std::cout << "НОД(" << num1 << ", " << num2 << ") = " << gcd << std::endl;
gcd = modifiedEuclideanAlgorithm(num1, num2);
std::cout << "НОД(" << num1 << ", " << num2 << ") = " << gcd << std::endl;
return 0;
}