Откройте файл электронной таблицы, содержащей в каждой строке три натуральных числа.
Определите, сколько среди заданных троек чисел таких, которые могут быть сторонами остроугольного треугольника.
Заметим, что треугольник является остроугольным, если квадрат длины наибольшей стороны треугольника будет меньше суммы квадратов длин других двух сторон. Тогда в
=(МИН(A1:C1))^2+(СУММ(A1:C1)-МИН(A1:C1)-МАКС(A1:C1))^2
и скопируем её во все ячейки
Ответ: 1074.
Приведём решение Сергея Калугина на языке Python.
cnt = 0
f = open('09.csv')
for s in f:
a = list(map(int,s.split(';')))
a.sort()
if a[0]**2 + a[1]**2 > a[2]**2:
cnt+=1
print(cnt)
Примечание. Файл следует сохранить в формате CSV.
Приведём решение Артёма Гридина на языке Python.
print([True if y[2]**2 < y[1]**2+y[0]**2 else False for y in tuple(map(lambda x: sorted(tuple(map(int, x.split(';')))), open('09.csv').read().splitlines()))].count(True))
Примечание. Файл следует сохранить в формате CSV.
Приведём решение Сергея Донец на PascalABC.NET:
//Файл следует сохранить в формате .xlsx или .txt или .csv
//выбрать переменную соответствующую расширению файла:
//неиспользуемые переменные закомментировать или удалить = использовать только, которая соответствует расширению файла
uses XLSX;
begin
var xlsx:=ReadXLSXAsInts('09.xlsx');
//var txt:=ReadAllLines('09.txt').Select(n->n.ToIntegers);
//var csv:=ReadAllLines('09.csv').Select(t -> t.Replace(';', ' ')).Select(n->n.ToIntegers);
xlsx // → xlsx txt csv → выбрать переменную соответствующую расширению файла
.Select(n->n.Order).Count(\(a,b,c)->a*a+b*b>c*c).Println;
end.

