Откройте файл электронной таблицы, содержащей в каждой строке три натуральных числа.
Определите, сколько среди заданных троек чисел таких, которые могут быть сторонами прямоугольного треугольника.
Заметим, что треугольник является прямоугольным, если квадрат длины гипотенузы треугольника будет равен сумме квадратов длин катетов этого треугольника. Тогда в
=(МИН(A1:C1))^2+(СУММ(A1:C1)-МИН(A1:C1)-МАКС(A1:C1))^2
и скопируем её во все ячейки
Ответ: 2.
Приведём решение Сергея Калугина на языке Python.
f = open('09.csv')
cnt = 0
for s in f:
a = list(map(int,s.split(';')))
for i in range(len(a)-2):
if (a[i]**2+a[i+1]**2 == a[i+2]**2) or (a[i]**2+a[i+2]**2 == a[i+1]**2) or (a[i+1]**2+a[i+2]**2 == a[i]**2):
cnt += 1
print(cnt)
Примечание. Файл следует сохранить в формате csv.
Приведём решение Ильи Андрианова на языке Python.
count = 0
for s in open('9.txt'):
M = sorted(int(x) for x in s.split())
if M[0]**2 + M[1]**2 == M[2]**2:
count += 1
print(count)
Примечание. Файл следует сохранить в формате txt.
Приведём решение Сергея Донец на языке 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);
csv // xlsx txt csv выбрать переменную соответствующую расширению файла
.Select(n->n.Order)
.Count(\(a,b,c)->a*a+b*b=c*c)
.Println;
end.

