Chỉ ra các test của bài toán: Kiểm tra một số nguyên dương cho trước có phải số chính phương hay k

2 câu trả lời

Mình chưa hiểu ý của câu hỏi lắm, nên mình sẽ viết chương trình nhé :D

program Min;
var n,x:integer;
begin
   write('Nhap n: ' ); readln(n);
   x:=trunc(sqrt(n));
   if sqr(x)=n then write(n,' la so chinh phuong') 
   else write(n,' khong la so chinh phuong');
   readln
end.
      

Ý tưởng:

- Số chính phương là số nếu bình phương của 1 số bé hơn nó bằng chính nó thì nó là số chính phương hay số chính phương là số mà căn bậc nhị của chính nó bằng số sau nó

- Ví dụ: $4=2^2\to4$ là số chính phương

             $\sqrt{4}=2\to4$ là số chính phương

Chương trình:

* Cách 1: số chính phương là số bằng bình phương của 2 số đằng sau nó:

uses crt;
var n:longint;
begin
clrscr;
   write('Nhap n: '); readln(n);
   if sqr(trunc(sqrt(n)))=n then writeln(n,' la so chinh phuong')
   else writeln(n,' khong phai la so chinh phuong');
readln
end.

* Cách 2: số chính phương là số mà căn bậc nhị của nó bằng số đứng sau nó:

uses crt;
var n:longint;
begin
clrscr;
   write('Nhap n: '); readln(n);
   if trunc(sqrt(n))=sqrt(n) then writeln(n,' la so chinh phuong')
   else writeln(n,' khong phai la so chinh phuong');
readln
end.

Câu hỏi trong lớp Xem thêm