Составить алгоритм и написать программу вычисления наибольшего общего делителя двух произвольных положительных целых чисел

#include <stdio.h>
#include <math.h>
#include <iostream>
#include <conio.h>
#include <cstdlib> // для функций rand() и srand()
#include <ctime> // для функции time()
int main()
{
    float a, b;
    
    srand(static_cast<unsigned int>(time(0))); // устанавливаем значение системных часов в качестве стартового числа

    for (int count = 0; count < 100; ++count)
    {
        std::cout << rand() << "\t";

        // Если вывели 5 чисел, то вставляем символ новой строки
        if ((count + 1) % 5 == 0)
            std::cout << "\n";
    }
}

Ответы (1 шт):

Автор решения: Mikhailo

написать программу вычисления наибольшего общего делителя двух произвольных положительных целых чисел

Алгоритм Евклида для вычисления наибольшего общего делителя:

int GCD(int a, int b) {
    while(a && b) if (a < b) b %= a; else a %= b;
    return (a == 0) ? b : a;
    }

Основан на том, что НОД у чисел a и b тот же, что и у меньшего числа и остатка от деления на него большего.

→ Ссылка