Тема 17. Обработка числовой последовательности

17.01 Обработка пар элементов последовательности

Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела обработка числовой последовательности
Решаем задачи

Ошибка.
Попробуйте повторить позже

Задача 1#49381Максимум баллов за задание: 1

В файле 17.txt содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от 0 до 10 000 включительно. Определите количество пар, в которых оба элемента меньше, чем среднее арифметическое всех чисел в файле, а их сумма оканчивается на 19. В ответе запишите два числа без пробела: сначала количество найденных пар, а затем – минимальную сумму элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.

Вложения к задаче
Показать ответ и решение

Решение программой

Напишем программу, которая будет находить количество пар подряд идущих чисел в последовательности, удовлетворяющих двум условиям: оба элемента меньше среднего арифметического всех чисел, а сумма пары оканчивается на 19. Сначала считаем все числа из файла и найдём их среднее. Затем последовательно переберём пары соседних чисел, проверяя условия задачи. Если они выполняются, увеличим счётчик и сравним сумму этой пары с текущей минимальной подходящей суммой. В конце выведем количество таких пар и наименьшую из их сумм.

# Открываем файл и считываем все числа
f = open("17.txt")
s = [int(x) for x in f]

# Вычисляем среднее арифметическое
sr = sum(s) / len(s)
# Счётчик подходящих пар
count = 0
# Минимальная сумма подходящих пар
ans = 10 ** 10

# Перебираем все пары подряд идущих элементов
for i in range(len(s) - 1):
    # Проверяем оба условия: оба числа меньше среднего, сумма оканчивается на 19
    if s[i] < sr and s[i + 1] < sr and (s[i] + s[i + 1]) % 100 == 19:
        count += 1
        ans = min(ans, s[i] + s[i + 1])

# sep="", чтобы убрать пробел
print(count, ans, sep="")

Ответ: 64519

Ошибка.
Попробуйте повторить позже

Задача 2#21170Максимум баллов за задание: 1

В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от -10  000  до 10  000  включительно. Определите и запишите в ответе сначала количество пар элементов последовательности, сумма которых четна. Затем – максимальное число в паре среди всех таких пар. Числа должны идти через пробел. В данной задаче под парой подразумевается два идущих подряд элемента последовательности. Например, для последовательности 204  ; 38  ; -15  ; 0  ; 2  ; 16  ответом будет пара чисел: 3  и 204  .

Вложения к задаче
Показать ответ и решение

Напишем программу, которая будет проверять все пары чисел, стоящих рядом друг с другом. Для проверки условия будем складывать элементы пары и находить остаток от деления этой суммы на 2. Если он будет равен 0, тогда увеличим счетчик подходящих пар и при необходимости обновим переменную, которая будет отвечать за максимальное число из таких пар.

# Открываем файл
f = open("1.txt")
# Считываем все числа и переводим их из
# строчного типа в целочисленный
a = [int(x) for x in f]
# Инициализируем переменную maxim для поиска
# максимального числа из подходящих пар
maxim = -10001
# Инициализируем переменную count,
# которая выступает в роли счетчика подходящих пар
count = 0
# Перебираем все возможные пары чисел
for i in range(len(a) - 1):
# Если сумма пары четна
    if (a[i] + a[i + 1]) % 2 == 0:
     # Увеличиваем счетчик на единицу
        count += 1
        # Обновляем переменную maxim,
        # записывая туда максимальное число
        maxim = max([a[i], a[i + 1], maxim])
# Печатаем ответ
print(count, maxim)

Ответ: 4969 9995

Ошибка.
Попробуйте повторить позже

Задача 3#21171Максимум баллов за задание: 1

В файле 2.txt содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от -10 000 до 10 000 включительно. Определите и запишите в ответе сначала количество пар элементов последовательности, произведение которых кратно их сумме (если сумма не ноль). Затем - сумму максимального и минимального элементов которые содержатся в таких парах. Числа должны идти через пробел. В данной задаче под парой подразумевается два идущих подряд элемента последовательности. Например, для последовательности 4220; -4180; 1496; -1408; 2268; 3024 ответом будет пара чисел: 3 и 40.

Вложения к задаче
Показать ответ и решение

Напишем программу, которая будет проверять все пары чисел, стоящих рядом друг с другом. Для проверки условия будем находить остаток от деления произведения элементов пары на их сумму (при условии, что сумма не равна 0). Если он будет равен 0, тогда увеличим счетчик подходящих пар и при необходимости обновим переменные, которые будут отвечать за максимальное и минимальное число из таких пар.

# Открываем файл
f = open("2__t9ih.txt")
# Считываем все числа и переводим их из
# строчного типа в целочисленный
l = [int(i) for i in f]
# Инициализируем переменную minim для поиска
# минимального числа из подходящих пар
minim = 10001
# Инициализируем переменную maxim для поиска
# максимального числа из подходящих пар
maxim = -10001
# Инициализируем переменную count,
# которая выступает в роли счетчика подходящих пар
count = 0
# Перебираем все возможные пары чисел
for i in range(len(l) - 1):
# Если сумма элементов пары не ноль И
    # Если их произведение кратно их сумме
    if (l[i] + l[i + 1]) != 0 and (l[i]* l[i + 1]) % (l[i] + l[i + 1]) == 0:
     # Увеличиваем счетчик на единицу
            count += 1
            # Обновляем переменную maxim,
          # записывая туда максимальное число
            maxim = max([l[i], l[i + 1], maxim])
            # Обновляем переменную minim,
          # записывая туда минимальное число
            minim = min([l[i], l[i + 1], minim])
# Печатаем ответ
print(count, minim + maxim)

Ответ: 20 -310

Ошибка.
Попробуйте повторить позже

Задача 4#22211Максимум баллов за задание: 1

Файл 17text.txt содержит последовательность неотрицательных целых чисел, не превышающих 10 000. Определите количество пар, в которых хотя бы один из двух элементов заканчивается на 8, а их сумма делится на 30. В ответе запишите два числа: сначала количество найденных пар, а затем − максимальное произведение элементов таких пар. Парой являются два идущих подряд элемента последовательности.

Вложения к задаче
Показать ответ и решение

Решение программой

Напишем программу, которая будет проверять все пары соседних чисел из файла, отбирая те, где сумма кратна 30 и хотя бы одно число оканчивается на 8. Для проверки первого условия будем находить остаток от деления на 30 суммы и сравнивать его с 0, если остаток равен 0, то сумма кратна 30. Для проверки второго условия будем сравнивать остатки от деления на 10 чисел пары, если остаток равен 8, то число оканчивается на 8. Количество и максимальное произведение подходящих пар будем подсчитывать в отдельных переменных, чтобы после отработки цикла вывести их количество и максимальное произведение.

# открываем файл
f = open(’17text.txt’)
# считываем числа в список
a = [int(s) for s in f]
# количество подходящих пар
# максимальная сумма пар
ans, maxim = 0, 0
# Перебираем все пары последовательных элементов списка ’a’
for i in range(len(a) - 1):
# Проверяем, что сумма текущего и следующего элемента кратна 30
    # И хотя бы один из элементов пары оканчивается на 8
    if (a[i] % 10 == 8 or a[i + 1] % 10 == 8) and sum(a[i:i + 2]) % 30 == 0:
        # увеличиваем счётчик
        ans += 1
        # перезаписываем максимальное произведение
        maxim = max(maxim, a[i] * a[i + 1])
# вывод количества и максимального произведения
print(ans, maxim)

Ответ: 25 88708176

Ошибка.
Попробуйте повторить позже

Задача 5#22897Максимум баллов за задание: 1

Задание выполняется с использованием прилагаемых файлов

В текстовом файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от 0 до 1000. Определите сначала количество пар, в которых оба элемента больше, чем количество всех цифр «4» в пятеричной записи всех чисел в файле, кратных 12, а затем максимальную из сумм таких пар. Под парой подразумевается два идущих подряд элемента последовательности.

Вложения к задаче
Показать ответ и решение

Напишем программу, которая будет проверять все пары чисел, стоящих рядом друг с другом. Сначала обработаем все числа файла, которые кратны 12: будем поразрядно переводить их в пятеричную систему счисления и при необходимости увеличивать счетчик, который отвечает за количество 4 в пятеричных записях таких чисел. Далее просто переберем все пары элементов и будем отбирать только те, где оба элемента больше, чем количество всех цифр «4» в пятеричной записи всех чисел в файле, кратных 12.

# Открываем файл
f = open("Задание_17__k3bs.txt")
# Считываем все числа и переводим их из строчного типа в целочисленный
a = [int(x) for x in f]
# Инициализируем два счетчика
counter = 0
count4 = 0
# Перебираем все числа файла
for i in range(len(a)):
    n = a[i]
    # Если оно кратно 12
    if n % 12 == 0:
     # Поразрядно переводим его в пятеричную систему счисления
        while n != 0:
         # Счетчик увеличится, если в пятеричной СС встретится 4
            count4 += n % 5 == 4
            n //= 5
# Инициализируем переменную, которая будет хранить максимульную сумму элементов из подходящих пар
maxim = 0
# Перебираем все пары элементов
for i in range(len(a)-1):
# Если оба числа больше, чем количество всех цифр «4» в пятеричной записи всех чисел в файле, кратных 12.
    if a[i] > count4 and a[i+1] > count4:
     # Увеличиваем счетчик
        counter += 1
        # Обновляем переменную maxim
        maxim = max(maxim, a[i]+a[i+1])
# Печатаем ответ
print(counter, maxim)

Ответ: 2020 1983

Ошибка.
Попробуйте повторить позже

Задача 6#23504Максимум баллов за задание: 1

В файле содержится последовательность целых чисел. Элементы последовательности могу принимать целые значения от 0  до 100  000  включительно. Определите и запишите в ответе через пробел два числа: сначала количество пар элементов, сумма которых кратна 6  , не кратна 9  и оканчивается на 2  , затем максимальное произведение, оканчивающееся на 7  , среди элементов всех пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.

Например для последовательности из шести элементов:
2; 423; 999; 69; 213; 15;  Ответ: 1 422577

Вложения к задаче
Показать ответ и решение

Решение программой

Напишем программу, которая будет проверять все пары соседних чисел из файла, подсчитывая те, где сумма кратна 6 и не кратна 9 и оканчивается на 2, и определяя максимальное произведение пары, которое оканчивается на 7. Для проверки первого условия будем находить остаток от деления на 6 суммы и сравнивать его с 0, если остаток равен 0, то сумма кратна 6. Для проверки второго условия будем находить остаток от деления на 9 суммы и сравнивать его с 0, если остаток не равен 0, то сумма кратна 9. Для проверки третьего условия будем находить остаток от деления на 10 суммы и сравнивать его с 2, если остаток равен 2, то сумма оканчивается на 2. Для проверки третьего условия будем находить остаток от деления на 10 произведения и сравнивать его с 7, если остаток равен 7, то произведение оканчивается на 7. Количество и максимальное произведение подходящих пар будем сохранять в отдельные переменные, чтобы после отработки цикла вывести их количество и максимальное произведение.

# открываем файл
f = open(’Задание_17__ktcw.txt’)
# считываем числа в список
a = [int(s) for s in f]
# количество подходящих пар
# максимальное произведение пары
ans, maxim = 0, -1
# Перебираем все пары последовательных элементов списка ’a’
for i in range(len(a) - 1):
    # Проверяем, что сумма текущего и следующего элемента кратна 6 и не кратна 9 и оканчивается на 2
    if (a[i] + a[i + 1]) % 6 == 0 and (a[i] + a[i + 1]) % 9 != 0 \
            and (a[i] + a[i + 1]) % 10 == 2:
        # увеличиваем счётчик
        ans += 1
    # Проверяем, что произведение текущего и следующего элемента оканчивается на 7
    if (a[i] * a[i + 1]) % 10 == 7:
        # перезаписываем максимальное произведение
        maxim = max(maxim, a[i] * a[i + 1])
# вывод количества и максимальное произведение
print(ans, maxim)

Ответ: 2178 9787731147

Ошибка.
Попробуйте повторить позже

Задача 7#24001Максимум баллов за задание: 1

В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от 0  до 100  включительно. Определите и запишите в ответе сумму двух значений: количества пар элементов, в которых предпоследняя цифра произведения равна 7  и максимальной суммы, кратной 42  , в последовательности. В данной задаче под парой подразумевается два идущих подряд элемента последовательности. Например, для последовательности из пяти элементов: 74,13,6,3,0,42  Ответ: 43

Вложения к задаче
Показать ответ и решение

Напишем программу, которая будет проверять все пары чисел, стоящих рядом друг с другом. Будем считать количество пар элементов, в произведении которых предпоследняя цифра - 7. Также будем искать максимульную сумму элементов среди тех пар, в которых сумма элементов кратна 42.

# Открываем файл
f = open("Задание_17__loog.txt")
# Считываем все числа и переводим их из строчного типа в целочисленный
a = [int(s) for s in f]
# Инициализируем счетчик и переменную, которая будет хранить максимальную сумму
counter, maxim = 0, -10 ** 10
# Перебираем все пары
for i in range(len(a) - 1):
# Если предпоследняя цифра произведения элементов пары - это 7
    if ((a[i] * a[i + 1]) // 10) % 10 == 7:
     # Увеличиваем счетчик на единицу
        counter += 1
    # Если сумма элементов пары кратна 42
    if (a[i] + a[i + 1]) % 42 == 0:
     # Обновляем переменную maxim
        maxim = max(maxim, a[i] + a[i + 1])
# Печатаем ответ
print(counter + maxim)

Ответ: 930242

Ошибка.
Попробуйте повторить позже

Задача 8#24418Максимум баллов за задание: 1

Текстовый файл содержит последовательность целых чисел, не превышающих по модулю 10  000  . Определите количество пар чисел в последовательности, в которых хотя бы одно число является натуральным, а модуль суммы чисел в паре дает остаток 7  при делении на 8  . В ответе запишите два числа: сначала количество найденных пар, а затем — максимальную сумму элементов подходящих пар. Под парой подразумеваются два подряд идущих элемента последовательности.

 

Вложения к задаче
Показать ответ и решение

Решение программой

Напишем программу, которая будет проверять все пары подряд идущих чисел в последовательности и отбирать те, где хотя бы одно число является натуральным, а сумма чисел даёт остаток 7 при делении на 8. Сначала считаем все числа из файла и сохраним их в список. Затем с помощью цикла переберём все пары соседних чисел, проверяя оба условия: одно из чисел должно быть больше нуля, и сумма пары по модулю 8 должна равняться 7. Если условия выполняются, увеличиваем счётчик и обновляем максимальную сумму. В конце выведем общее количество таких пар и наибольшую из их сумм.

# Открываем файл для чтения
f = open("Задание_17__mixp.txt")

# Считываем числа из файла
a = [int(i) for i in f]
# Счётчик количества подходящих пар
k = 0
# Переменная максимальной суммы
mx = 0

# Перебираем все пары соседних элементов в списке
# -1, т.к. проверяем [i + 1]
for i in range(len(a) - 1):
    # Условия:
    # 1) хотя бы одно из чисел в паре должно быть натуральным,
    # 2) сумма пары должна давать остаток 7 при делении на 8
    if (a[i] > 0 or a[i + 1] > 0) and abs(a[i] + a[i + 1]) % 8 == 7:
        # Увеличиваем счётчик подходящих пар
        k += 1
        # Обновляем максимальную сумму,
        # если текущая пара больше предыдущей
        mx = max(mx, a[i] + a[i + 1])

print(k, mx)

Ответ: 1049 15063

Ошибка.
Попробуйте повторить позже

Задача 9#25102Максимум баллов за задание: 1

В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от 1  до 10000  включительно. Определите количество пар элементов, в которых хотя бы один из двух элементов меньше, чем среднее арифметическое всех чисел в файле. В ответе запишите два числа: сначала количество найденных пар, а затем — максимальную сумму элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности. Например, для последовательности из пяти элементов: 25 11 72 35 9 61  Ответ: 5 107

Вложения к задаче
Показать ответ и решение

Решение программой

Напишем программу, которая будет проверять все пары соседних чисел из файла, отбирая те, где хотя бы один элемент меньше среднего арифметического значения файла. Для проверки условия будем сравнивать значение элемента со средним арифметическим, если хотя бы один элемент меньше, то пара подходит. Количество и максимальная сумма подходящих пар будем сохранять в отдельные переменные, чтобы после отработки цикла вывести их количество и максимальную сумму.

# открываем файл
f = open(’Задание 17.txt’)
# считываем числа в список
a = [int(x) for x in f]
# среднее арифметическое значение файла
sr = sum(a)/len(a)
# количество подходящих пар
counter = 0
# максимальная сумма пар
maxim = 0
# Перебираем все пары последовательных элементов списка ’a’
for i in range(len(a)-1):
    # Проверяем, что хотя бы один элемент меньше среднего арифметического значения
    if (a[i] < sr or a[i+1] < sr):
        # увеличиваем счётчик
        counter += 1
        # перезаписываем максимальную сумму
        maxim = max(maxim, a[i]+a[i+1])
# вывод количества и максимальной суммы
print(counter, maxim)

Ответ: 750348 14998

Ошибка.
Попробуйте повторить позже

Задача 10#25534Максимум баллов за задание: 1

В файле содержится последовательность целых чисел. Элементы последовательности могу принимать целые значения от 0 до 10000 включительно. Определите и запишите в ответе через пробел сначала количество пар элементов, в которых два числа кратны 5, затем минимальное из произведений элементов таких пар, которое кратно 3. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.

Например для последовательности из шести элементов:

5; 2; 3; 5; 5; 15; Ответ: 2 75

Вложения к задаче
Показать ответ и решение

Напишем программу, которая будет проверять все пары чисел, стоящих рядом друг с другом. Будем проверять: если оба элемента пары кратны 5, увеличим счетчик и, если произведение элементов этой пары кратно 3, обновим при необходимости минимальное произведение элементов таких пар.

# Открываем файл
f = open("17.txt")
# Считываем числа и переводим их из строчного типа в целочисленный
s = [int(x) for x in f]
# Инициализируем счетчик
count = 0
# Минимальное произведение чисел кратных 3
minpr = 10000000
# Проходимся по всем парам чисел
for i in range(len(s) - 1):
    # Если оба элемента пары кратны 5
    if s[i] % 5 == 0 and s[i+1] % 5 == 0:
     # Увеличиваем счетчик
        count += 1
        # Если произведение элементов этой же пары кратно 3
        if (s[i] * s[i+1]) % 3 == 0:
         # Обновляем переменную minpr
            minpr = min(minpr, s[i] * s[i+1])
# Выводим ответ
print(count, minpr)

Ответ: 4063 375

Ошибка.
Попробуйте повторить позже

Задача 11#25561Максимум баллов за задание: 1

В файле содержится последовательность целых чисел. Элементы последовательности могу принимать целые значения от 0  до 10000  включительно. Определите и запишите в ответе сначала количество пар элементов, произведение которых кратно 38  и оканчивается на 2  , затем максимальную сумму, оканчивающуюся на 7  среди элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.

Например для последовательности из шести элементов:

38; 4; 133; 5; 28; 19;  Ответ: 3 137

Для выполнения этого задания можно написать программу или воспользоваться редактором электронных таблиц.

Вложения к задаче
Показать ответ и решение

Решение программой

Напишем программу, которая будет проверять все пары соседних чисел из файла, отбирая те, где произведение кратно 38 и оканчивается на 2. Для проверки первого условия будем находить остаток от деления на 38 произведения и сравнивать его с 0, если остаток равен 0, то произведение кратно 38. Для проверки второго условия будем находить остаток от деления на 10 произведения и сравнивать его с 2, если остаток равен 2, то произведение оканчивается на 2. Для проверки третьего условия будем находить остаток от деления на 10 суммы и сравнивать его с 7, если остаток равен 7, то сумма оканчивается на 7. Количество и максимальную сумму подходящих пары будем сохранять в отдельные переменные, чтобы после отработки цикла вывести их количество и максимальную сумму.

# открываем файл
f = open(’17.txt’)
# считываем числа в список
a = [int(x) for x in f]
# количество подходящих пар
counter = 0
# максимальная сумма пар
maxim = 0
# Считываем все строки из файла и преобразуем их в целые числа, сохраняя в список ’a’
for i in range(len(a)-1):
    # Проверяем, что произведение текущего и следующего элемента кратно 38 и оканчивается на 2
    # И сумма пары оканчивается на 7
    if (a[i]*a[i+1]) % 38 == 0 and (a[i]*a[i+1]) % 10 == 2:
        # увеличиваем счётчик
        counter += 1
        if (a[i]+a[i+1]) % 10 == 7:
            # перезаписываем максимальную сумму
            maxim = max(maxim, a[i]+a[i+1])
# вывод количества и максимальной суммы
print(counter, maxim)

Ответ: 119 17297

Ошибка.
Попробуйте повторить позже

Задача 12#25588Максимум баллов за задание: 1

В файле содержится последовательность целых чисел. Элементы последовательности могу принимать целые значения от 0 до 10000 включительно. Определите и запишите в ответе через пробел сначала количество пар элементов, произведение которых кратно 12 и сумма кратна 13, затем максимальную сумму среди элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.

Например для последовательности из шести элементов:

36; 16; 133; 5; 28; 19; Ответ: 1 52

Для выполнения этого задания можно написать программу или воспользоваться редактором электронных таблиц.

Вложения к задаче
Показать ответ и решение

Напишем программу, которая будет проверять все пары чисел, стоящих рядом друг с другом. Будем проверять: если произведение элементов пары кратно 12 и сумма элементов кратна 13, будем увеличивать счетчик и при необходимости обновлять переменную, которая будет содержать максимальную сумму элементов из подходящих пар.

# Открываем файл
f = open("17.txt")
# Считываем числа и переводим их из строчного типа в целочисленный
a = [int(x) for x in f]
# Инициализируем счетчик и переменную, которая будет хранить максимальную сумму
counter = 0
maxim = 0
# Перебираем все пары
for i in range(len(a)-1):
# Если произведение кратно 12 и сумму кратна 13
    if (a[i]*a[i+1]) % 12 == 0 and (a[i]+a[i+1]) % 13 == 0:
     # Увеличиваем счетчик и обновляем переменную  maxim
        counter += 1
        maxim = max(maxim, a[i+1]+a[i])
# Печатаем ответ
print(counter, maxim)

Ответ: 214 19292

Ошибка.
Попробуйте повторить позже

Задача 13#25615Максимум баллов за задание: 1

В файле содержится последовательность целых чисел. Элементы последовательности могу принимать целые значения от 0  до 100  000  включительно. Определите и запишите в ответе через пробел два числа: сначала количество пар элементов, сумма которых кратна 6  , не кратна 9  и оканчивается на 2  , затем максимальное произведение, оканчивающееся на 7  среди элементов всех пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.

Например для последовательности из шести элементов: 2;  423;  999;  69;  213;  15;  Ответ: 1  422577

Для выполнения этого задания можно написать программу или воспользоваться редактором электронных таблиц.

Вложения к задаче
Показать ответ и решение

Решение программой

Напишем программу, которая будет проверять все пары соседних чисел из файла, подсчитывая те, где сумма кратна 6 и не кратна 9 и оканчивается на 2, и определяя максимальное произведение пары, которое оканчивается на 7. Для проверки первого условия будем находить остаток от деления на 6 суммы и сравнивать его с 0, если остаток равен 0, то сумма кратна 6. Для проверки второго условия будем находить остаток от деления на 9 суммы и сравнивать его с 0, если остаток не равен 0, то сумма кратна 9. Для проверки третьего условия будем находить остаток от деления на 10 суммы и сравнивать его с 2, если остаток равен 2, то сумма оканчивается на 2. Для проверки третьего условия будем находить остаток от деления на 10 произведения и сравнивать его с 7, если остаток равен 7, то произведение оканчивается на 7. Количество и максимальное произведение подходящих пар будем сохранять в отдельные переменные, чтобы после отработки цикла вывести их количество и максимальное произведение.

# открываем файл
f = open(’17.txt’)
# считываем числа в список
a = [int(x) for x in f]
# количество подходящих пар
counter = 0
# максимальное произведение пары
maxim = -100000
# Перебираем все пары последовательных элементов списка ’a’
for i in range(len(a)-1):
    # Проверяем, что сумма текущего и следующего элемента кратна 6 и не кратна 9 и оканчивается на 2
    if (a[i] + a[i+1]) % 6 == 0 and (a[i] + a[i+1]) % 9 != 0 and str(a[i] + a[i+1])[-1] == ’2’:
        counter += 1
    # Проверяем, что произведение текущего и следующего элемента оканчивается на 7
    if a[i] * a[i+1] % 10 == 7:
        maxim = max(maxim, a[i] * a[i + 1])
print(counter, maxim)

Ответ: 2178 9787731147

Ошибка.
Попробуйте повторить позже

Задача 14#25777Максимум баллов за задание: 1

В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от 0  до 100000  включительно. Определите и запишите в ответе через пробел сначала количество пар элементов, в которых оба числа кратны 11  , затем минимальную сумму таких чисел, которая кратна 101  , если ее нет напишите 0  . В данной задаче под парой подразумевается два идущих подряд элемента последовательности.

Для выполнения этого задания можно написать программу или воспользоваться редактором электронных таблиц.

Вложения к задаче
Показать ответ и решение

Решение программой

Напишем программу, которая будет проверять все пары подряд идущих чисел в последовательности и отбирать те, где оба числа делятся на 11. Для таких пар будем проверять, делится ли их сумма на 101. Если сумма кратна 101, будем сравнивать её с текущим минимумом и при необходимости обновлять минимальное значение. В результате выведем количество всех пар, в которых оба числа делятся на 11, и наименьшую сумму среди тех, что дополнительно делятся на 101. Если таких сумм нет, выведем 0.

# Открываем файл "17.txt" для чтения
f = open("17.txt")
# Считываем все числа из файла
a = [int(x) for x in f]

# Счётчик подходящих пар
c = 0
# Переменная минимальной суммы пары
# Задаем большое значение, чтобы находить суммы меньше
mn = 10 ** 10

# Перебираем все пары подряд идущих элементов в списке
for i in range(len(a) - 1):
    # Проверяем, что оба числа в паре делятся на 11 без остатка
    if (a[i] % 11 == 0) and (a[i + 1] % 11 == 0):
        # Увеличиваем счётчик таких пар
        c += 1

        # Проверяем, делится ли их сумма на 101
        if (a[i] + a[i + 1]) % 101 == 0:
            # Если да, то обновляем переменную минимума
            mn = min(mn, (a[i] + a[i + 1]))

print(c, mn)

Ответ: 822 12221

Ошибка.
Попробуйте повторить позже

Задача 15#25936Максимум баллов за задание: 1

В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от 0 до 100000 включительно. Определите и запишите в ответе через пробел сначала количество пар чисел, в которых ровно один из двух элементов больше, чем остаток от деления суммы всех чисел в файле на 100000, а десятичная запись другого оканчивается на 99. В ответе запишите два числа через пробел: сначала количество найденных пар, а затем – минимальную сумму элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.

Например для последовательности из шести элементов:

17444; 96703; 54278; 9099; 17022; 37563; Ответ: 1 63377

Для выполнения этого задания можно написать программу или воспользоваться редактором электронных таблиц.

Вложения к задаче
Показать ответ и решение

Решение программой

Напишем программу, которая будет проверять все пары соседних чисел из файла, отбирая те, где ровно один элемент больше остаток от деления суммы всех чисел в файле на 100000 и при этом другой элемент оканчивается на 99. Для проверки первого условия будем сравнивать с остатоком от деления суммы всех чисел в файле на 100000. Для проверки второго условия будем сравнивать остаток другого элемента от деления на 100, если он равен 99, значит, число оканчивается на 99. Количество и минимальную сумму подходящих пар будем сохранять в отдельные переменные, чтобы после отработки цикла вывести их количество и минимальную сумму.

# Считываем все числа из файла
f = open(’17.txt’)
a = [int(x) for x in f]

# Остаток от деления суммы всех чисел в файле на 100000
ost = sum(a) % 100000
# Количество найденных пар
count = 0
# Минимальная сумма элементов пар
mins = 100000000000

# Проходимся по всем парам чисел
for i in range(len(a) - 1):
    # Если пара нам подходит - обновляем ответ
    if (a[i] > ost and a[i+1] <= ost and a[i+1] % 100 == 99) or (a[i+1] > ost and a[i] <= ost and a[i] % 100 == 99):
        count += 1
        mins = min(mins, a[i] + a[i+1])
# Выводим ответ
print(count, mins)

Ответ: 449 31274

Ошибка.
Попробуйте повторить позже

Задача 16#25963Максимум баллов за задание: 1

В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от − 10000  до 10000  включительно. Определите и запишите в ответе сначала количество пар элементов последовательности, в которых модуль разности элементов чётен и кратен 42  , затем максимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.

Например для последовательности из шести элементов:

3422  ; 3629  ; − 3988  ; 1152  ; 6150  ; 1648  ; Ответ: 1  7302

Вложения к задаче
Показать ответ и решение

Решение программой

Напишем программу, которая будет проверять все пары соседних чисел из файла, отбирая те, в которых модуль разности элементов кратен 42  и чётен. 42 = 21 ×2  , а значит число, делящееся на 42  , будет делится как на 21  , так и на 2  (условие четности). Проверим каждую пару последовательности, при соблюдении условия обновим счётчик и максимальную сумму. После завершения цикла выведем ответы.

# Считываем все числа из файла
f = open(’17.txt’)
a = [int(x) for x in f]

# Количество найденных пар
count = 0
# Максимальная сумма элементов пар
maxs = -100000000000

# Проходимся по всем парам чисел
for i in range(len(a) - 1):
    # Если пара нам подходит - обновляем ответ
    if abs(a[i] - a[i+1]) % 42 == 0:
        count += 1
        maxs = max(maxs, a[i] + a[i+1])
# Выводим ответ
print(count, maxs)

Ответ: 23734 19948

Ошибка.
Попробуйте повторить позже

Задача 17#26069Максимум баллов за задание: 1

В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от 1  до 10000  включительно. Определите количество таких пар чисел, в которых хотя бы одно число в двоичной системе счисления имеет не менее 5  единиц. В ответе запишите через пробел два числа: сначала количество найденных пар, а затем — максимальную сумму элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.

Например для последовательности из шести элементов:

34  ; 55  ; 64  ; 36  ; 60  ; 48  ; Ответ: 2 119

Вложения к задаче
Показать ответ и решение

Решение программой

Напишем программу, которая перебирает все пары соседних чисел из последовательности. Для каждой пары проверим, содержит ли хотя бы одно из чисел в двоичной записи не менее 5 единиц. Для этого используем вспомогательную функцию, которая переводит число в двоичную систему и подсчитывает количество символов ’1’. Если условие выполнено, увеличиваем счётчик таких пар и обновляем максимум суммы элементов пары. В конце выводим количество найденных пар и максимальную сумму.

# Функция для подсчёта количества единиц в двоичной записи числа
def count_one(n):
    return bin(n)[2:].count(’1’)

# Открываем файл ’17.txt’ и считываем числа в список
f = open(’17.txt’)
a = [int(x) for x in f]

# Счётчик подходящих пар
counter = 0
# Максимальная сумма среди подходящих пар
maxim = 0

# Перебираем все пары соседних элементов
for i in range(len(a) - 1):
    # Проверяем, есть ли хотя бы в одном числе пары 5 или больше единиц
    if count_one(a[i]) >= 5 or count_one(a[i + 1]) >= 5:
        counter += 1
        # Обновляем максимум суммы
        maxim = max(maxim, a[i] + a[i + 1])

# Выводим количество подходящих пар и максимальную сумму
print(counter, maxim)

Ответ: 9874 19893

Ошибка.
Попробуйте повторить позже

Задача 18#26096Максимум баллов за задание: 1

В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от 0 до 100000 включительно. Определите и запишите в ответе через пробел сначала количество пар чисел, в которых хотя-бы один из двух элементов больше, чем остаток от деления суммы всех чисел в файле на 12345, а шестнадцатеричная запись другого оканчивается на F, а затем — минимальную сумму элементов таких пар. Если оба числа больше, чем остаток от деления суммы всех чисел в файле на 12345, то хотя бы одно из них в шестнадцатеричной записи должно кончаться на F. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.

Например для последовательности из шести элементов:

17444; 31; 54278; 9099; 17022; 37563; Ответ: 2 17475

Для выполнения этого задания можно написать программу или воспользоваться редактором электронных таблиц.

Вложения к задаче
Показать ответ и решение

Решение программой

Сначала считаем все числа из файла и найдём остаток от деления их суммы на 12345 — он нужен для сравнения в дальнейшем. Далее переберём все пары соседних чисел. Условие, по которому отбираем подходящие пары, следующее: хотя бы одно из чисел в паре должно быть больше этого остатка, а шестнадцатеричная запись другого должна заканчиваться на F (то есть число даёт остаток 15 при делении на 16). Также учитываем случай, если оба числа больше остатка — тогда хотя бы одно из них должно оканчиваться на F. Для каждой подходящей пары будем подсчитывать их количество и сохранять минимальную сумму.

f = open(’17.txt’)
a = [int(x) for x in f]

# Остаток от деления суммы всех чисел в файле на 12345
ostat = sum(a) % 12345
# Количество найденных пар
count = 0
# Минимальная сумма элементов пар
mins = 100000000

# Проходимся по всем парам чисел
for i in range(len(a) - 1):
    # Если пара нам подходит - обновляем ответ
    if (a[i] > ostat and a[i+1] % 16 == 15) or \
       (a[i+1] > ostat and a[i] % 16 == 15) or \
       (a[i] > ostat and a[i+1] > ostat and \
       (a[i] % 16 == 15 or a[i+1] % 16 == 15)):
        count += 1
        mins = min(mins, a[i]+a[i+1])

# Выводим ответ
print(count, mins)

Ответ: 11089 11282

Ошибка.
Попробуйте повторить позже

Задача 19#26123Максимум баллов за задание: 1

В файле содержится последовательность целых чисел. Элементы последовательности могу принимать целые значения от 0  до 100000  включительно. Определите и запишите в ответе сумму двух значений: количества пар элементов, в которых предпоследняя цифра произведения равна 6  и максимальной суммы элементов пары, кратной 137  , в последовательности. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.

Например для последовательности из шести элементов:

256;10;136;1;548;137;  Ответ: 687

Для выполнения этого задания можно написать программу или воспользоваться редактором электронных таблиц.

Вложения к задаче
Показать ответ и решение

Решение программой

Напишем программу, которая будет проверять все пары подряд идущих чисел в последовательности. Нас интересуют пары, в которых предпоследняя цифра произведения двух чисел равна 6. Для этого нужно взять произведение, затем извлечь предпоследнюю цифру через (% 100) // 10. Если условие выполняется, увеличиваем счётчик таких пар. Дополнительно, если сумма элементов пары делится на 137, обновляем максимальную сумму. В конце выводим сумму количества найденных пар и максимальной суммы.

# Открываем файл "17.txt"
f = open("17.txt")
# Считываем все числа
a = [int(x) for x in f]

# Счётчик подходящих пар
c = 0

# Переменная максимальной суммы
# Очень маленькое, чтобы обновилось при первом же подходящем случае
mx = -10 ** 10

# Перебираем все пары подряд идущих чисел
for i in range(len(a) - 1):
    # Проверяем, является ли предпоследняя цифра произведения "6"
    # (сначала берём последние две цифры % 100, затем // 10 — получаем предпоследнюю)
    if a[i] * a[i + 1] % 100 // 10 == 6:
        # Увеличиваем счётчик подходящих пар
        c += 1

    # Если сумма пары кратна 137, то обновляем максимум
    if (a[i] + a[i + 1]) % 137 == 0:
        mx = max(a[i] + a[i + 1], mx)

print(c + mx)

Ответ: 207874

Ошибка.
Попробуйте повторить позже

Задача 20#26177Максимум баллов за задание: 1

В файле содержится последовательность целых чисел. Элементы последовательности могут принимать целые значения от –10000  до 10000  включительно. Определите и запишите в ответе сначала количество пар элементов последовательности, сумма которых четна, а произведение нечетно, а затем максимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.

Например, для последовательности из пяти элементов: 13,15,24,17,3  Ответ: 2  28

Вложения к задаче
Показать ответ и решение

Решение программой

Перебираем все пары подряд идущих чисел из последовательности. Для каждой пары проверяем два условия: сумма элементов должна быть чётной, а произведение — нечётным. Чётность суммы проверяем по остатку от деления на 2, если он равен 0, то сумма чётная, а нечётность произведения — по остатку от деления произведения на 2, если он не равен 0, то произведение нечётное. Если пара подходит, увеличиваем счётчик таких пар и обновляем максимальную сумму. В конце выводим количество найденных пар и максимальную сумму среди них.

f = open(’Задание_17__iob5.txt’)
a = [int(x) for x in f]

# Счётчик подходящих пар
counter = 0
# Максимальная сумма среди подходящих пар
maxim = 0

# Перебираем все пары подряд идущих чисел
for i in range(len(a) - 1):
    # Проверяем, что сумма чётная, а произведение нечётное
    if (a[i] + a[i + 1]) % 2 == 0 and (a[i] * a[i + 1]) % 2 != 0:
        counter += 1
        maxim = max(maxim, a[i] + a[i + 1])

# Выводим количество подходящих пар и максимальную сумму
print(counter, maxim)

Ответ: 2455 100
Рулетка
Вы можете получить скидку в рулетке!