Если n небольшие, то можно написать так: var x, y, z, n: integer; disproved: boolean; begin write('Введите n: '); readln(n); disproved := false; for x := 1 to 100 do for y := 1 to 100 do for z := 1 to 100 do if power(x, n) + power(y, n) = power(z, n) then begin writeln('Ферма ошибся! ', x, ' ^ ', n, ' + ', y, ' ^ ', n, ' = ', z, ' ^ ', n); disproved := true; end; if not disproved then writeln('Теорема не опровергнута'); end. При больших n уже придётся использовать длинную арифметику.
// PascalABC.NET 3.1, сборка 1230 от 27.04.2016 function FS(a,b:real):=0.5*a*b; begin var a,b:real; Write('Катеты первого треугольника: '); Read(a,b); var S1:=FS(a,b); Write('Катеты второго треугольника: '); Read(a,b); var S2:=FS(a,b); if S1>S2 then Writeln('Площадь первого треугольника больше') else if S1<S2 then Writeln('Площадь второго треугольника больше') else Writeln('Площади треугольников равны') end.
Тестовое решение Катеты первого треугольника: 4.18 6 Катеты второго треугольника: 5.4 3.9 Площадь первого треугольника больше
var
x, y, z, n: integer;
disproved: boolean;
begin
write('Введите n: ');
readln(n);
disproved := false;
for x := 1 to 100 do
for y := 1 to 100 do
for z := 1 to 100 do
if power(x, n) + power(y, n) = power(z, n) then
begin
writeln('Ферма ошибся! ', x, ' ^ ', n, ' + ', y, ' ^ ', n, ' = ', z, ' ^ ', n);
disproved := true;
end;
if not disproved then
writeln('Теорема не опровергнута');
end.
При больших n уже придётся использовать длинную арифметику.
function FS(a,b:real):=0.5*a*b;
begin
var a,b:real;
Write('Катеты первого треугольника: '); Read(a,b);
var S1:=FS(a,b);
Write('Катеты второго треугольника: '); Read(a,b);
var S2:=FS(a,b);
if S1>S2 then Writeln('Площадь первого треугольника больше')
else
if S1<S2 then Writeln('Площадь второго треугольника больше')
else Writeln('Площади треугольников равны')
end.
Тестовое решение
Катеты первого треугольника: 4.18 6
Катеты второго треугольника: 5.4 3.9
Площадь первого треугольника больше