Сумма 2 квадратов написать программу определяющую возможность представления заданного натурального числа n в виде суммы двух квадратов натуральных чисел
Вот программа , если мы хотим сложить 2 квадрата одного числа program sqr; var n,a: integer; begin write ('Введите число>>'); read (n); a:= n*n+n*n; writeln (a) end.
Но если мы хотим выразить 1 число в виде суммы 2-х квадратов и проверить возможно ли это, то (боюсь ошибиться) program sqr; uses crt; var n: integer; a,b:real; begin write ('Введите число>>'); read (n); a:= sqrt(n); if (a= sqrt(n)) and (a=(n*n)) then begin b:= sqrt(a); if b= (a*a)+(a*a) then writeln ('Можно'); if b<> (a*a)+(a*a) then writeln ('Нельзя'); end; if (a= sqrt(n)) and (a<>n*n) then writeln ('Нельзя') end.
program sqr;
var n,a: integer;
begin
write ('Введите число>>');
read (n);
a:= n*n+n*n;
writeln (a)
end.
Но если мы хотим выразить 1 число в виде суммы 2-х квадратов и проверить возможно ли это, то (боюсь ошибиться)
program sqr;
uses crt;
var n: integer; a,b:real;
begin
write ('Введите число>>');
read (n);
a:= sqrt(n);
if (a= sqrt(n)) and (a=(n*n)) then
begin
b:= sqrt(a);
if b= (a*a)+(a*a) then
writeln ('Можно');
if b<> (a*a)+(a*a) then
writeln ('Нельзя');
end;
if (a= sqrt(n)) and (a<>n*n) then
writeln ('Нельзя')
end.