Sau khi học về số chính phương ” là số mà có một số nguyên bình phương bằng chính nó”, Tí và Tèo chơi trò chơi tìm số như sau : Tí nói 1 số nguyên a, Tèo nói một số nguyên b sao cho a + b là số chính phương gần với số a nhất. Bạn hãy giúp Tèo tìm số b nhé.
Dữ liệu vào từ file TIMSO.INP gồm 1 số nguyên a ( 1 < a < 10000) Kết quả ghi ra file TIMSO.OUT gồm 1 số nguyên b theo yêu cầu trên. VD TIMSO.INP=15 TIMSO.OUT=1 ( vì số 16 là số chính phương gần 15 nhất) Bạn nào vào giúp mk với , mai mk đi thi òi!!
uses crt;
var d:text; b,A:longint;
begin
clrscr;
assign(d,’input.pas’);reset(d);
readln(d,a);
close(d);
assign(d,’output.pas’);rewrite(d);
b:=A;
while sqrt(b)<>trunc(sqrt(b)) do inc(b);
writeln(d,b-a);
close(d);
end.
const fi=’sochinhphuong.inp’;
fo=’sochinhphuong.out’;
var f:text;
a,x,y,d1,d2:longint;
function cp(x:longint):boolean;
begin
if sqr(trunc(sqrt(x)))=x then exit(true)
else exit(false);
end;
begin
assign(f,fi);reset(f);readln(f,a);close(f);
assign(f,fo);rewrite(f);
x:=a; y:=a; d1:=0; d2:=0;
repeat
x:=x+1;
d1:=d1+1;
until cp(x)=true;
repeat
y:=y-1;
d2:=d2-1
until cp(y)=true;
if d1>d2 then write(f,y) else write(f,x);
close(f);
end.