1707.py

ФИПИ: Задание 17: Обработка числовой последовательности в файле В файле содержится последовательность целых чисел. Её элементы могут принимать целые значения от -100 000 до 100 000 включительно. Определите количество пар последовательности, в которых только один из элементов является пятизначным числом, a квадрат суммы элементов пары превышает квадрат максимального пятизначного элемента последовательности, оканчивающегося на 37. В ответе запишите количество найденных пар, затем максимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.
"""
ФИПИ: Задание 17: Обработка числовой последовательности в файле

В файле содержится последовательность целых чисел. 
Её элементы могут принимать целые значения 
от -100 000 до 100 000 включительно. 

Определите количество пар последовательности, 
в которых только один из элементов является 
пятизначным числом, a квадрат суммы элементов 
пары превышает квадрат максимального пятизначного 
элемента последовательности, оканчивающегося на 37.

В ответе запишите количество найденных пар, 
затем максимальную из сумм элементов таких пар.

В данной задаче под парой подразумевается 
два идущих подряд элемента последовательности.

"""

f = open('1707.txt') # открываем файл
#print(f.readline()) # для проверки

a = [int(s) for s in f] # читаем файл построчно и добавляем в список
#print(a) # для проверки

"""
ПРОВЕРКА УСЛОВИЯ: 
максимального пятизначного элемента последовательности, оканчивающегося на 37
"""
sum_par = [] # список для сумм пар
max37 = [] # список для максимальных пятизначных элементов оканчивающихся на 37
for x in a:
    if str(x)[-2:] == '37' and len(str(abs(x))) == 5:
        max37.append(x)
max37 = max(max37) 

# другая форма записи:
#max37 = max([x for x in a if str(x)[-2:] == '37' and len(str(abs(x))) == 5])

print(max37) # для проверки

"""
ПРОВЕРКА УСЛОВИЯ: 
"""

for i in range(len(a) - 1):
    if ((len(str(abs(a[i]))) == 5) 
    + (len(str(abs(a[i+1]))) == 5)) == 1:
        # проверка что только один из элементов является пятизначным числом
        if ((a[i] + a[i+1])**2) > max37 ** 2:
            sum_par.append(a[i] + a[i+1]) 


"""
ВЫВОДИМ ОТВЕТ: КОЛИЧЕСТВО ПАР И МАКСИМАЛЬНУЮ СУММУ ПАР
"""
print(len(sum_par), max(sum_par))
"""
ФИПИ: Задание 17: Обработка числовой последовательности в файле

В файле содержится последовательность целых чисел. 
Её элементы могут принимать целые значения 
от -100 000 до 100 000 включительно. 

Определите количество пар последовательности, 
в которых только один из элементов является 
пятизначным числом, a квадрат суммы элементов 
пары превышает квадрат максимального пятизначного 
элемента последовательности, оканчивающегося на 37.

В ответе запишите количество найденных пар, 
затем максимальную из сумм элементов таких пар.

В данной задаче под парой подразумевается 
два идущих подряд элемента последовательности.

"""

f = open('1707.txt') # открываем файл
#print(f.readline()) # для проверки

a = [int(s) for s in f] # читаем файл построчно и добавляем в список
#print(a) # для проверки

"""
ПРОВЕРКА УСЛОВИЯ: 
максимального пятизначного элемента последовательности, оканчивающегося на 37
"""
sum_par = [] # список для сумм пар
max37 = [] # список для максимальных пятизначных элементов оканчивающихся на 37
for x in a:
    if str(x)[-2:] == '37' and len(str(abs(x))) == 5:
        max37.append(x)
max37 = max(max37) 

# другая форма записи:
#max37 = max([x for x in a if str(x)[-2:] == '37' and len(str(abs(x))) == 5])

print(max37) # для проверки

"""
ПРОВЕРКА УСЛОВИЯ: 
"""

for i in range(len(a) - 1):
    if ((len(str(abs(a[i]))) == 5) 
    + (len(str(abs(a[i+1]))) == 5)) == 1:
        # проверка что только один из элементов является пятизначным числом
        if ((a[i] + a[i+1])**2) > max37 ** 2:
            sum_par.append(a[i] + a[i+1]) 


"""
ВЫВОДИМ ОТВЕТ: КОЛИЧЕСТВО ПАР И МАКСИМАЛЬНУЮ СУММУ ПАР
"""
print(len(sum_par), max(sum_par))

Файлы данных

Репозиторий на GitHub