Можно ли представить число в виде суммы двух квадратов натуральных чисел
Категория: Delphi/Pascal
2013-02-27 14:11:16
На вход программе подается натуральное число n (меньше или равно) 10 в 9 степени. Проверьте, можно ли представить его в виде суммы двух квадратов натуральных чисел. Выведите YES или NO в зависимости от ответа на вопрос задачи. В случае положительного ответа во второй строке выведите два числа, сумма квадратов которых равна n. Числа следует выводить в порядке неубывания. Максимальное время работы программы на одном тесте — 0,1 секунды.
В консоли:
code: #delphi
program Project2; {$APPTYPE CONSOLE} uses SysUtils,Math; var n,i:integer; r:real; begin WriteLn('vvedi n:'); ReadLn(n); i:=1; while i*i<n do begin r:=n-i*i; if sqrt(r)=floor(sqrt(r)) then WriteLn(sqrt(r):1:0,',',i); i:=i+1; end; ReadLn; end.
с окном
code: #delphi
uses Math; procedure TForm1.Button1Click(Sender: TObject); var n,i:integer; r:real; begin n:=StrToInt(Edit1.Text); i:=1; while i*i<n do begin r:=n-i*i; if sqrt(r)=floor(sqrt(r)) then Memo1.Lines.Add(FloatToStr(sqrt(r))+','+IntToStr(i)); i:=i+1; end; end;
автор: Arriba
Поделиться: