Вопрос задан 23.10.2023 в 18:31. Предмет Информатика. Спрашивает Сорокин Алексей.

Даны две сцепленные шестеренки. У одной шестеренки N зубцов, у другой – K. Требуется найти, какое

минимальное число поворотов на один зубчик требуется сделать, чтобы шестеренки вернулись в исходное состояние. Входные данные В единственной строке --- два натуральных числа N и K, не превосходящих 10 миллионов. Выходные данные Выведите искомое количество зубчиков. Гарантируется, что оно не более миллиарда На языке С и С++ ПОЖАЛУЙСТА
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Шевченко Анатолий.

Важное замечание: Для типа long long int требуется от компилятора поддержка стандарта C99.

Приложил файл расширения .cpp, чтобы обойти ограничение сайта. При работе с кодом измените на .c

#include <stdio.h>


long long int NOD(long long int var1, long long int var2) //Алгоритм Евклида

{

   while(var1 != var2)

   {

       if(var1 > var2)

           var1 = var1 - var2;

       else var2 = var2 - var1;

   }

   return var1;

}

long long int NOK(long long int var1, long long int var2)

{

   return (var1 * var2) / NOD(var1, var2);

}

int main()

{

   long long int N, K;

   scanf("%lli%lli", &N, &K);


   printf("Количество оборотов: %lli\n", NOK(N, K));


}



0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Ваша задача сводится к нахождению наибольшего общего делителя (НОД) между двумя числами - количеством зубцов на каждой из шестеренок. Это число и будет минимальным числом поворотов, необходимых для возвращения шестеренок в исходное состояние.

В языках программирования C и C++, вы можете использовать функцию `gcd()`, которая доступна в библиотеке ``. Эта функция принимает два числа в качестве аргументов и возвращает их наибольший общий делитель.

Вот пример кода, который решает вашу задачу:

```c++ #include #include

int main() { int N, K; std::cin >> N >> K; std::cout << std::gcd(N, K) << std::endl; return 0; } ```

В этом коде мы сначала считываем два числа - количество зубцов на каждой из шестеренок. Затем мы вызываем функцию `std::gcd()`, передавая ей эти два числа. Результат функции (наибольший общий делитель) выводим на экран.

Обратите внимание, что функция `std::gcd()` возвращает наибольший общий делитель, а не минимальное количество поворотов. Но поскольку каждый поворот на один зубчик увеличивает количество зубчиков на шестеренке на количество зубцов на этой шестеренке, минимальное количество поворотов будет равно наибольшему общему делителю.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос