1703.py
ФИПИ: Задание 17: Обработка числовой последовательности в файле
В файле содержится последовательность натуральных чисел.
Её элементы могут принимать целые значения
от 1 до 100 000 включительно.
Определите количество пар элементов последовательности,
в которых хотя бы одно число кратно минимальному элементу
последовательности, кратному 23.
В ответе запишите количество найденных пар,
затем максимальную из сумм элементов таких пар.
В данной задаче под парой подразумевается
два идущих подряд элемента последовательности.
"""
ФИПИ: Задание 17: Обработка числовой последовательности в файле
В файле содержится последовательность натуральных чисел.
Её элементы могут принимать целые значения
от 1 до 100 000 включительно.
Определите количество пар элементов последовательности,
в которых хотя бы одно число кратно минимальному элементу
последовательности, кратному 23.
В ответе запишите количество найденных пар,
затем максимальную из сумм элементов таких пар.
В данной задаче под парой подразумевается
два идущих подряд элемента последовательности.
"""
f = open('1703.txt') # открываем файл
#print(f.readline()) # для проверки
a = [int(s) for s in f] # читаем файл построчно и добавляем в список
#print(a) # для проверки
"""
ПРОВЕРКА УСЛОВИЯ:
поиск минимального положит кратного 23
"""
sum_par = [] # список для сумм пар
mn23 = [] # список для минимальных положительных элементов кратных 23
for x in a:
if x % 23 == 0:
mn23.append(x)
mn23 = min(mn23) # находим минимальный элемент в списке
# другая форма записи:
#mn23 = min([x for x in a if x % 23 == 0])
print(mn23) # для проверки
"""
ПРОВЕРКА УСЛОВИЯ:
"""
for i in range(len(a) - 1):
if a[i] % mn23 == 0 or a[i+1] % mn23 == 0:
# проверка что первый элемент кратный 23 ИЛИ второй элемент кратный 23
sum_par.append(a[i] + a[i+1])
"""
ВЫВОДИМ ОТВЕТ: КОЛИЧЕСТВО ПАР И МАКСИМАЛЬНУЮ СУММУ ПАР
"""
print(len(sum_par), max(sum_par))"""
ФИПИ: Задание 17: Обработка числовой последовательности в файле
В файле содержится последовательность натуральных чисел.
Её элементы могут принимать целые значения
от 1 до 100 000 включительно.
Определите количество пар элементов последовательности,
в которых хотя бы одно число кратно минимальному элементу
последовательности, кратному 23.
В ответе запишите количество найденных пар,
затем максимальную из сумм элементов таких пар.
В данной задаче под парой подразумевается
два идущих подряд элемента последовательности.
"""
f = open('1703.txt') # открываем файл
#print(f.readline()) # для проверки
a = [int(s) for s in f] # читаем файл построчно и добавляем в список
#print(a) # для проверки
"""
ПРОВЕРКА УСЛОВИЯ:
поиск минимального положит кратного 23
"""
sum_par = [] # список для сумм пар
mn23 = [] # список для минимальных положительных элементов кратных 23
for x in a:
if x % 23 == 0:
mn23.append(x)
mn23 = min(mn23) # находим минимальный элемент в списке
# другая форма записи:
#mn23 = min([x for x in a if x % 23 == 0])
print(mn23) # для проверки
"""
ПРОВЕРКА УСЛОВИЯ:
"""
for i in range(len(a) - 1):
if a[i] % mn23 == 0 or a[i+1] % mn23 == 0:
# проверка что первый элемент кратный 23 ИЛИ второй элемент кратный 23
sum_par.append(a[i] + a[i+1])
"""
ВЫВОДИМ ОТВЕТ: КОЛИЧЕСТВО ПАР И МАКСИМАЛЬНУЮ СУММУ ПАР
"""
print(len(sum_par), max(sum_par))