Пифагоровыми числами называются числа, для которых выполняется равенство a 2+b 2= c 2. Например, 3 2+4 2= 5 2 следовательно числа 3,4,5 – пифагоровы.
Поскольку уравнение x 2+y 2= z 2 однородно, при домножении x, y и z на одно и то же число получится другая пифагорова тройка.
Пифагорова тройка называется примитивной, если она не может быть получена таким способом, то есть x,y,z — взаимно простые числа. (Взаимно простые числа - числа у которых НОД равен 1).
Некоторые пифагоровы тройки (отсортированы по возрастанию максимального числа, выделены примитивные):
(3, 4, 5), (6, 8, 10), (5, 12, 13), (9, 12, 15), (8, 15, 17), (12, 16, 20), (15, 20, 25), (7, 24, 25), (10, 24, 26), (20, 21, 29), (18, 24, 30), (10, 30, 34), (21, 28, 35), (12, 35, 37), (15, 36, 39), (24, 32, 40), (9, 40, 41), (27, 35, 45), (14, 48, 50), (30, 40, 50)…
Первый способ:
{a,b,c - проверяемые числа;
cc - сумма квадратов чисел a и b;
n - максимальное проверяемое число}
for a:=1 to n do
for b:=a to n do
begin
cc:=a*a+b*b;
c:=1;
while (c*c<cc) and (c<n) do inc(c);
If sqr(c)=cc then writeln(a,' ',b,' ',c,' - пифагоровы');
end;
Второй способ:
{a - первое число; b - второе число;
c - третье число;
a1 - первое число в квадрате;
b1 - второе число в квадрате;
c1 - третье число в квадрате;
i - счетчик цикла}
a:=1 ;
while a<=n do
begin
a1:=SQR(a); {квадрат первого числа}
for b:=1 to n do
begin
b1:=SQR(b); {квадрат второго числа}
for c:=1 to n do
begin
c1:=SQR(c); {квадрат третьего числа}
if c1=a1+b1 then writeln (a:5,b:5,c:5,' - пифагоровы');
end;
end;
inc(a);
end;
Третий способ:
readln(n);
for a:=1 to n do
for b:=a to n do
for c:=b to n do
If c*c=a*a+b*b then writeln(a:5, b:5, c:5, ' - пифагоровы');
end.
|