Pascal: Dùng lệnh for hoặc while để kiểm tra một số có phải là số chính phương hay không
0 bình luận về “Pascal: Dùng lệnh for hoặc while để kiểm tra một số có phải là số chính phương hay không”
Dùng lệnh for:
uses crt; var n,i:longint; kt:boolean; begin clrscr; write(‘Nhap mot so: ‘);readln(n); kt:=false; for i:=0 to n do if i*i=n then kt:=true; if kt then writeln(‘So nay la so chinh phuong’) else writeln(‘So nay khong la so chinh phuong’); readln end.
Dùng lệnh while:
uses crt; var n,i:longint; begin clrscr; write(‘Nhap mot so: ‘);readln(n); i:=0; while (i*i<>n)and(i<n) do inc(i); if i*i=n then writeln(‘So nay la so chinh phuong’) else writeln(‘So nay khong la so chinh phuong’); readln end.
Dùng lệnh for:
uses crt;
var n,i:longint; kt:boolean;
begin
clrscr;
write(‘Nhap mot so: ‘);readln(n);
kt:=false;
for i:=0 to n do if i*i=n then kt:=true;
if kt then writeln(‘So nay la so chinh phuong’) else
writeln(‘So nay khong la so chinh phuong’);
readln
end.
Dùng lệnh while:
uses crt;
var n,i:longint;
begin
clrscr;
write(‘Nhap mot so: ‘);readln(n);
i:=0;
while (i*i<>n)and(i<n) do inc(i);
if i*i=n then writeln(‘So nay la so chinh phuong’) else
writeln(‘So nay khong la so chinh phuong’);
readln
end.
var i,n:int64; kt:boolean;
begin
write(‘nhap so=’); readln(n); kt:=false;
for i:=1 to n div 2 do
if i*i=n then begin kt:=true; break end;
if kt or (n=1) then write(n,’ la so chinh phuong’) else write(n,’ ko phai so chinh phuong’)