Откройте файл электронной таблицы, содержащей в каждой строке четыре натуральных числа.
Определите количество строк таблицы, содержащих числа, для которых выполнено хотя бы одно из условий:
— квадрат наибольшего из четырёх чисел больше произведения трёх других;
— будучи упорядоченными, четыре числа образуют арифметическую прогрессию.
В ответе запишите только число.
Посчитаем количество ячеек, удовлетворяющих условиям.
=ПРОИЗВЕД(A1:D1)/МАКС(A1:D1)
для поиска произведения оставшихся трех чисел. Скопируем формулу на весь
Для поиска ячеек, удовлетворяющих второму условию,
=СЧЁТЕСЛИ(A1:D1;МИН(A1:D1)+(МАКС(A1:D1)-МИН(A1:D1))/3).
Cкопируем формулу на весь
=СЧЁТЕСЛИ(A1:D1;МИН(A1:D1)+2*(МАКС(A1:D1)-МИН(A1:D1))/3).
Cкопируем формулу на весь
=ЕСЛИ(И(H1=1;I1=1);1;0).
Cкопируем формулу на весь
Если значение в ячейке равно 1, следовательно, строка образует арифметическую прогрессию.
Для поиска строк, удовлетворяющим всем условиям,
=ЕСЛИ(ИЛИ(G1=1;J1=1);1;0)
и скопируем формулу на весь
Ответ: 61.
Приведём решение Ильи Андрианова на языке Python.
count = 0
for s in open('9_58322.txt'):
M = sorted([int(x) for x in s.split()])
if M[-1] ** 2 > (M[0] * M[1] * M[2]) or all(M[1] - M[0] == M[i+1] - M[i] for i in range(len(M)-1)):
count += 1
print(count)
Примечание. Файл следует сохранить в формате txt.
Приведём решение Михаила Глинского на языке Python.
def F(m):
if m[3]-m[2] == m[2]-m[1] and m[2]-m[1] == m[1]-m[0]:
return 1
else: return 0
f = open('9_58322.txt')
count = 0
for s in f:
m=[int(x) for x in s.split()]
m.sort()
if F(m) == 1 or m[-1]**2 > m[0]*m[1]*m[2]:
count += 1
print(count)
Примечание. Файл следует сохранить в формате txt.
Приведём решение Юрия Красильникова на языке Python.
a = [sorted(list(map(int,s.split(';')))) for s in open('9_58322.csv')]
b = [x for x in a if (x[3]**2>x[0]*x[1]*x[2]) or len(set([x[i+1]-x[i] for i in range(3)]))==1]
print(len(b))
Примечание. Файл следует сохранить в формате csv.

