Дана дробь 1. Требуется ее сократить, то есть записать это же число в виде 2, где c — целое число, d — натуральное число и d минимальное возможное.
Входные данные
Вводятся два целых числа a и b (–100≤a≤100, 0<b≤100).
Выходные данные
Выведите два числа c и d.
Оценка задачи
1 балл получат программы, правильно решающие задачу для случая положительного числа a.
Примеры
входные данные
3 6
выходные данные
1 2
входные данные
-2 5
выходные данные
-2 5
Python
Программирование на языке Пайтон
Для сокращения дроби 1/a требуется найти такое натуральное число d, что a и d будут взаимно простыми, т.е. не имеют общих делителей, кроме 1. Тогда числитель будет равен d, а знаменатель — a*d.
Для нахождения наибольшего общего делителя a и b можно воспользоваться алгоритмом Евклида. Он заключается в следующем:
Пример решения на языке Python:
Для нахождения наибольшего общего делителя a и b можно воспользоваться алгоритмом Евклида. Он заключается в следующем:
- Если a делится на b, то НОД(a,b) = b.
- - Если b делится на a, то НОД(a,b) = a.
- - Если a не делится на b, то НОД(a,b) = НОД(b,a%b), где % обозначает операцию остатка от деления.
Пример решения на языке Python:
a, b = map(int, input().split())
# находим наибольший общий делитель a и b
def gcd(x, y):
while y != 0:
x, y = y, x % y
return x
d = gcd(abs(a), b)
# получаем результат
c = a // d
d = b // d
print(c, d)
```
В этом коде мы сначала находим НОД(a,b) функцией gcd, применяем алгоритм Евклида. Затем делим числитель и знаменатель на этот НОД и выводим результат. Обратите внимание, что мы берем модуль a перед тем, как искать НОД, чтобы программа работала корректно для отрицательных a.
from math import gcd
a, b = map(int, input().split())
c = gcd(a, b); print(a / c, b / c)
Или так вот ещё можно: import fractions
a, b = map(fractions.Fraction, input().split())
c, d = str(a / b).split('/'); print(c, d)
Похожие вопросы
- Программирование на языке python, помогите советом. Вопрос от чайника.
- Сложно выучить язык Пайтона?
- программа на языке пайтон
- Программирование на языке Python
- Программирование на языке Python
- Задача на тему циклов по программированию на языке Python, помогите.
- Язык программирования пайтон
- Программирование пайтон, с чего начать ?
- Со скольки лет лучше изучать программирование? И какой лучше всего, пайтон?
- Программирование, пайтон программа.