📸 Нужно решить свою задачу?
Загрузите фото — AI решит за секунды!
schoolМатематика verifiedРешено AI

Решение задачи 17 ЕГЭ по информатике на Python

calendar_today
schedule2 мин. чтения
visibility1 просмотр

Напиши программу в питоне,в формате 10 класса

Изображение задачи: Напиши программу в питоне,в формате 10 класса
Нажмите для увеличения

Представлен код на Python для решения задачи из ЕГЭ по информатике (задание 17). Программа анализирует пары чисел из файла, проверяя условия кратности и остатков от деления.

check_circle

Подробное решение

Ниже представлены решения задач на языке Python, оформленные так, чтобы их было удобно переписать в тетрадь. Эти задачи относятся к разделу 17 ЕГЭ по информатике. Задача 1 Для решения этой задачи нам нужно считать числа из файла, пройтись по ним циклом и проверить условия для каждой пары соседних элементов. Код программы: f = open('17_2_1.txt') a = [] for line in f: a.append(int(line)) count = 0 total_sum = 0 for i in range(len(a) - 1): n1 = a[i] n2 = a[i+1] # Условие 1: ровно один элемент имеет остаток 17 при делении на 80 cond1 = (n1 % 80 == 17) + (n2 % 80 == 17) == 1 # Условие 2: оба элемента кратны 7 cond2 = (n1 % 7 == 0) and (n2 % 7 == 0) if cond1 and cond2: count += 1 # Добавляем в сумму тот элемент, у которого остаток 17 if n1 % 80 == 17: total_sum += n1 else: total_sum += n2 print(count, total_sum) Пояснение к логике: Выражение \( (n1 \% 80 == 17) + (n2 \% 80 == 17) == 1 \) работает потому, что в Python логическое значение True приравнивается к 1, а False к 0. Если сумма равна 1, значит ровно одно условие истинно. Задача 2 Эта задача сложнее, так как требует проверки цифр внутри числа. Мы напишем вспомогательные функции для проверки возрастания и убывания цифр. Код программы: def is_increasing(n): s = str(n) for i in range(len(s) - 1): if s[i] >= s[i+1]: return False return True def is_decreasing(n): s = str(n) for i in range(len(s) - 1): if s[i] <= s[i+1]: return False return True def sum_digits(n): return sum(int(d) for d in str(n)) # Находим минимальное число из строго убывающих цифр во всем файле f = open('17_2_2.txt') a = [int(x) for x in f] f.close() min_dec = 10**10 # Очень большое число для поиска минимума for x in a: if is_decreasing(x): if x < min_dec: min_dec = x # Вычисляем сумму цифр этого минимального числа s_min_dec = sum_digits(min_dec) count = 0 min_pair_sum = 10**10 for i in range(len(a) - 1): n1, n2 = a[i], a[i+1] # Условие 1: только одно число состоит из возрастающих цифр cond1 = (is_increasing(n1) + is_increasing(n2)) == 1 # Условие 2: произведение кратно сумме цифр минимального убывающего cond2 = (n1 * n2) % s_min_dec == 0 if cond1 and cond2: count += 1 if n1 + n2 < min_pair_sum: min_pair_sum = n1 + n2 print(count, min_pair_sum) Математические формулы условий: Для первой задачи условие кратности и остатка записывается как: \[ n \equiv 17 \pmod{80} \] \[ n \equiv 0 \pmod{7} \] Для второй задачи условие возрастания цифр числа \( d_1 d_2 ... d_k \): \[ d_1 < d_2 < ... < d_k \] Условие кратности произведения: \[ (n_i \cdot n_{i+1}) \equiv 0 \pmod{S_{min\_dec}} \]
listВсе задачи

Нужно решить свою задачу?

Загрузите фото или введите текст — AI решит с пошаговым объяснением!

Решите свою задачу прямо сейчас

Введите текст задачи или загрузите фото — получите ответ мгновенно

Выберите режим AI:
🚀 Pro v3
20 руб. • 99.9%
⚡ Lite v3
5 руб. • 95%
Ваш баланс: 10 руб.
Пополнить
psychology
Задайте любой вопрос
Поддерживаются текст, фото и голосовой ввод
Изображение
🎉
Бонус получен!
+20 ₽
Добавлено на ваш баланс