С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 26.04.2023
Сообщений: 1

Сокращение обыкновенной дроби на языке Python

26.04.2023, 11:54. Показов 1596. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
помогите, пожалуйста, напишите программу по сокращению дроби на языке программирования Python
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
26.04.2023, 11:54
Ответы с готовыми решениями:

Сокращение обыкновенной дроби
Разработать программу, которая вводит 2 натуральных числа, числитель и знаменатель дроби, а затем сокращает дробь и выводит новые значения...

Некорректный вывод ответа в десятичной дроби, когда требуется вывод в обыкновенной дроби
Всех приветствую, возникла проблема, Maple выводит ответ не так, как нужно. Условия для выполнения задания и нужный результат приложены в...

Вычитание обыкновенной дроби
Приложение осуществляет вычитание обыкновенной дроби, чисел типа 1/5, 7/11 и т.д. Нужно реализовать только вычитание этих дробей. ...

13
 Аватар для TimutGin
515 / 339 / 146
Регистрация: 16.02.2021
Сообщений: 626
26.04.2023, 12:25
Python
1
print(input('Введите дробное число: ').split('.')[0])
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
26.04.2023, 12:51
TimutGin, почитай где-нибудь, что такое обыкновенная дробь
1
 Аватар для TimutGin
515 / 339 / 146
Регистрация: 16.02.2021
Сообщений: 626
26.04.2023, 14:29
iSmokeJC, почитал. Если правильно задание понял,то

Python
1
2
3
4
5
6
7
8
9
10
11
def func(n,m):
    a = n//m
    b = n%m
    if not b: return f'{a}'
    elif a: return f'{a} {b}/{m}'
    else: return f'{n}/{m}'
 
n = int(input('Введите числитель: '))
m = int(input('Введите знаменатель: '))
 
print(func(n,m))
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
26.04.2023, 14:43
TimutGin, уже лучше. Теперь сократи например 3/6
0
 Аватар для TimutGin
515 / 339 / 146
Регистрация: 16.02.2021
Сообщений: 626
26.04.2023, 15:15
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import math
def func(n,m):
    k = math.gcd(n, m)
    n = n//k
    m = m//k
    a = n//m
    b = n%m
    
    if not b: return f'{a}'
    elif a: return f'{a} {b}/{m}'
    else: return f'{n}/{m}'
 
n = int(input('Введите числитель: '))
m = int(input('Введите знаменатель: '))
 
print(func(n,m))
0
1709 / 578 / 74
Регистрация: 10.04.2009
Сообщений: 9,297
26.04.2023, 15:38
Python
1
2
3
4
5
6
7
8
9
import math
# сократить дробь — значит разделить её числитель и знаменатель на их общий делитель
# общий делитель должен быть положительным и не равен нулю и единице
# n = int(input('Введите числитель: '))
# m = int(input('Введите знаменатель: '))
n = 3
m = 6
k = math.gcd(n,m)
print(f'{n//k}/{m//k}') # => 1/2 =  ½
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38163 / 21098 / 4306
Регистрация: 12.02.2012
Сообщений: 34,686
Записей в блоге: 14
26.04.2023, 15:41
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
сократить дробь — значит разделить её числитель и знаменатель на их общий делитель
- тут пропущено одно слово "наибольший"
3
1709 / 578 / 74
Регистрация: 10.04.2009
Сообщений: 9,297
26.04.2023, 15:45
Цитата Сообщение от Catstail Посмотреть сообщение
- тут пропущено одно слово "наибольший"
я с инета взял, где оно должно быть?
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
26.04.2023, 15:50

Не по теме:


- Вот вам решение
- А что в нем делается?
- А хрен его знает



Добавлено через 1 минуту
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
где оно должно быть?
Это еще в 5-м классе рассказывают, емнип
2
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38163 / 21098 / 4306
Регистрация: 12.02.2012
Сообщений: 34,686
Записей в блоге: 14
26.04.2023, 16:35
Ципихович Эндрю, наибольший общий делитель.
0
Любознательный
 Аватар для YuS_2
7404 / 2251 / 360
Регистрация: 10.03.2016
Сообщений: 5,212
28.04.2023, 20:27
Python
1
2
3
4
5
6
from fractions import Fraction
 
n = int(input('Введите числитель: '))
d = int(input('Введите знаменатель: '))
f = Fraction(n, d)
print(f'{f.numerator}/{f.denominator}')
3
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
29.04.2023, 16:44
Решение в лоб:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
def func(n: int, d: int) -> (int, int):
    """Сокращалка дроби"""
    m = n if n > d else d
    for i in range(2, m):
        n2, mm1 = divmod(n, i)
        d2, mm2 = divmod(d, i)
        if mm1 == 0 and mm2 == 0:
            return n2, d2
    return n, d
 
n = int(input('Введите числитель: '))
d = int(input('Введите знаменатель: '))
print(f'{n}/{d}')
while True:
    n2, d2 = func(n, d)
    if n == n2:
        break
    n, d = n2, d2
print(f'{n}/{d}')
Добавлено через 2 минуты
Хотя, как мне кажется, было бы оптимальнее захардкодить первые сто простых чисел либо погуглить правильный алгоритм.

Добавлено через 33 секунды
Code
1
2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199,
0
1709 / 578 / 74
Регистрация: 10.04.2009
Сообщений: 9,297
29.04.2023, 19:25
Цитата Сообщение от Рыжий Лис Посмотреть сообщение
Хотя, как мне кажется, было бы оптимальнее захардкодить первые сто простых чисел
так и десяти хватит или чуть больше, только наоборот сначала делим, и если после деления получаем:
0,1 то 1\10
0,2 то 1\5
0,25 то 1\4
..........
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.04.2023, 19:25
Помогаю со студенческими работами здесь

Представление обыкновенной дроби
Нужна полная реализация программы(Python). Условие: Пользователь вводит два целых числа m и n (n отличается от нуля). Следует...

Сложение обыкновенной дроби
Приложение осуществляет сложение обыкновенной дроби, чисел типа 1/5, 7/11 и т.д. Нужно реализовать только сложение этих дробей. ...

Класс обыкновенной дроби
class TFraction { public: signed int numerator; unsigned denominator; TFraction operator + (TFraction); TFraction...

Представление обыкновенной дроби
Задание: Пользователь вводит два целых числа m и n (n отличается от нуля). Следует записать дробь m/n в десятичном виде, отделив...

Перевод обыкновенной дроби в проценты
Здравствуйте. Стал изучать VB 2010. А по ходу дела еще и в колледже давали задания...Так вот задали сделать задачу. И на ней я застрял. В...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru