1. Заметим, что первый вариант дает в результате 0 во всех случаях, так как конъюнкция ложна, если ложен хотя бы один из её аргументов, а это не соответствует значениям F.
2. Выражение в варианте 2, как и в варианте 4, принимает ложные значения, если X не эквивалентно Z, а значит, по первой и третьей строчке и 2, и 4 вариант удовлетворяют F.
3. Остается сравнить их по второй строке, в которой F – истинно. В этой строке X=0, Y=1, Z=0, значит, выражение в варианте 2 здесь истинно.
4. Так как значения F и значения функции в варианте 2 сошлись по всем трем строкам, вариант 2 является ответом к данной задаче.
Объяснение:
var m, n: Longint;
i, j: Integer;
begin
Write('Введите M: '); ReadLn(m);
for i:=Trunc(Sqrt(m)) downto 1 do begin
n:=Sqr(i); j:=1; while (j<=i) and (n+Sqr(j)<m) do Inc(j);
if n+Sqr(j)=m then begin
WriteLn(m,' = ',i,'^2 + ',j,'^2'); Exit;
end;
end;
WriteLn(m,' не является суммой квадратов натуральных чисел.');
end.