87009522377
18.08.2020 15:59

Модифицированный алгоритм Евклида для вычисления наибольшего общего делителя двух натуральных чисел, формулируется так: нужно заменять большее число на остаток от деления большего на меньшее до тех пор, пока остаток не станет равно нулю; тогда второе число и есть НОД. Напишите программу, которая реализует этот алгоритм. Входные данные
Входная строка содержит два числа, разделённые пробелом – a и b .

Выходные данные
Программа должна вывести в одной строке два числа: сначала наибольший общий делитель двух введённых чисел, а затем – количество шагов цикла, которые были выполнены.

Модифицированный алгоритм Евклида для вычисления наибольшего общего делителя двух натуральных чисел, формулируется так: нужно заменять большее число на остаток от деления большего на меньшее до тех пор, пока остаток не станет равно нулю; тогда второе число и есть НОД. Напишите программу, которая реализует этот алгоритм.

Входные данные
Входная строка содержит два числа, разделённые пробелом – a и b .

Выходные данные
Программа должна вывести в одной строке два числа: сначала наибольший общий делитель двух введённых чисел, а затем – количество шагов цикла, которые были выполнены.

Написать на Паскале,

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Betmen23
24.07.2022 15:50
В C++
#include <iostream>
int main()
{
    using namespace std;

    const int n = 6;
    double arr[n];

    for (int i = 0; i < n; ++i)
    {
        cout << "Enter #" << i + 1 << " element: ";
        cin >> arr[i];
    }

    for (int i = 0; i < n; ++i)
        cout << arr[i] << "   ";
    cout << endl;

    double p = 1.0;
    bool flag = false;
    for (int i = 0; i < n; ++i)
        if (arr[i] < 0)
        {
            p = p * arr[i];
            flag = true;
        }
   
    if (!flag)
        p = 0.0;
   
    cout << "Multiplication of negative: " << p << endl;

    int imax = 0;
    for (int i = 1; i < n; ++i)
        if (arr[i] > arr[imax])
            imax = i;

    double s = 0;
    for (int i = 0; i < imax; i++)
        if (arr[i] > 0)
            s += arr[i];

    cout << "Sum of positive before max: " << s << endl;

    double temp;
    for (int i = 0, m = n - 1; i < n / 2; ++i, --m)
    {
        temp = arr[i];
        arr[i] = arr[m];
        arr[m] = temp;
    }

    for (int i = 0; i < n; ++i)
        cout << arr[i] << "   ";
    cout << endl;
    return 0;
}
0,0(0 оценок)
Ответ:
kiranovm14
23.06.2022 15:35
Function Square(x1, y1, x2, y2, x3, y3: real): real;
begin 
    Square := abs((x2 - x1) * (y3 - y1) - (x3 - x1) * (y2 - y1)) / 2;
end;

var 
  x1, y1, x2, y2, x3, y3, s1, s2: real;

begin 
  write('Задайте первый треугольник(x1,y1,x2,y2,x3,y3): '); 
  readln(x1, y1, x2, y2, x3, y3); 
  s1 := Square(x1, y1, x2, y2, x3, y3); 
  write('Задайте второй треугольник(x1,y1,x2,y2,x3,y3): '); 
  readln(x1, y1, x2, y2, x3, y3); 
  s2 := Square(x1, y1, x2, y2, x3, y3); 
  if s1 > s2 then writeln('Площадь первого треугольника больше') 
  else if s1 < s2 then writeln('Площадь второго треугольника больше') 
  else writeln('Площади треугольников равны');
end.

p.s. проверять существуют ли такие треугольники не нужно, т.к. они уже заданы и нам нужно определить площадь большего.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота