В файле содержатся дроби, записанные в формате "числитель / знаменатель".
Пользователь с клавиатуры задает число N. Найти в данном файле все
правильные несократимые дроби, знаменатели которых меньше N и которые не встречаются
в данном файле.
Pardon Me! Where Do I Find 4giveness?, Допустим я считаю построчно каждую дробь и запишу в строковый тип, а как потом указать программе где именно находиться знаменатель, чтобы его сравнивать с N? И будет ли сравниваться строковый тип с числовым?
Надо создать новый класс, который будет реализовывать распознавание, хранение, отображение, сравнение и преобразование во float и обратно дробных чисел указанной записи.
Затем при помощи этого класса понапарсить из файла соответствующий массив дробей и затем отфильтровать его в соответствии с заданием.
Полагаю, если задание пересказано правильно, ответом будет пустое множество решений.
Хз, может кто-то найдет мой вопрос из-за похожей проблемы спустя месяцы или года, но вот, че-то нашкарябал, должно работать
Код
#Объявление пути к файлу и открытие его для чтения
file = open("file.txt", "r")
#Присвоение строковому массиву всех элементов файла, игнорируя символ "/"
nums = file.read().replace("\n", "/").split("/")
#Вывод строкового массива
print(nums)
#Конвертация строкового массива в целочисленный
result = [int(item) for item in nums]
#Вывод целочисленного массива
print(result)
#Распознавание длины целочисленного массива
length = (len(result))
#Вывод длины массива
print("Длина массива: ", length)
#Добавление ограничения по знаменателю
print("Введите ограничение по знаменателю: ")
N = int(input())
#Функция для вычисления НОД
def add(n, m):
while (m):
buff = n % m
n = m
m = buff
#Условие для вывода правильной несокращаемой дроби
if (n == 1):
print(result[i],'/',result[i+1], sep='')
#Проход по массиву для определения знаменателей и сравнения их с ограничителем
for i in range (0, length, 2):
if (result[i+1] < N):
#Условие для передачи данных в функцию add
add(result[i], result[i+1])
file.close()
input('Нажмите любую кнопку для выхода...')