Срочно на с++, даю 100 балов . Сокращение дроби Дана дробь ab. Требуется её сократить, то есть
записать это же число в виде cd, где c — целое число, d — натуральное число и d минимальное возможное. Входные данные Вводятся два целых числа a и b (–100≤a≤100, 0 Выходные данные Выведите два числа c и d. Примеры Ввод Вывод 18 27 2 3Ответы на вопрос
Ответ:
#include <iostream>
using namespace std;
int NOD(int c, int d)
{
while (c > 0 && d > 0)
if (c > d)
{
c %= d;
}
else
d %= c;
return c + d;
}
int main()
{
int a, b, x;
cin >> a >> b;
x = NOD(a, b);
cout << a/x << " " << b/x;
}
Для сокращения дроби a/b, мы должны найти наибольший общий делитель (НОД) чисел a и b и разделить оба числа на этот НОД.
Для нахождения НОДа чисел a и b, мы можем использовать алгоритм Евклида. Этот алгоритм основан на том факте, что НОД(a, b) = НОД(b, a mod b), где a mod b - это остаток от деления a на b.
Используя этот алгоритм, мы можем найти НОД чисел a и b. После этого мы разделим оба числа на НОД, чтобы получить сокращенную дробь.
Вот код на языке C++, который реализует этот алгоритм:
```cpp
#include
int gcd(int a, int b) { if (b == 0) { return a; } return gcd(b, a % b);
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili
