Câu 1 - Các số đặc biệt Tên tệp chương trình : CAU1.PAS
Định nghĩa:
- Một số được gọi là đối xứng, nếu đọc từ bên trái sang bên phải hoặc từ bên phải sang trái đều được cùng một số. Ví dụ: số 75457 là số đối xứng.
- Số chính phương là số bằng bình phương đúng của một số nguyên. Ví dụ số 256 là số chính phương (vì 256=162)
Cho 2 số tự nhiên M và N (M, N trong khoảng từ 10 đến 100000 và M <N).
Yêu cầu:
a) Liệt kê và đếm xem có bao nhiêu số đối xứng nằm trong khoảng [M,N]
b) Liệt kê và đếm xem có bao nhiêu số chính phương nằm trong khoảng [M,N]
c) Liệt kê và đếm xem có bao nhiêu số đối xứng chính phương trong khoảng [M,N]
Dữ liệu vào là 2 số tự nhiên M và N nhập từ bàn phím. Kết quả in ra màn hình .
Program HOC24;
var m,i,n: longint;
d1,d2,d3: integer;
function dx(x: longint): boolean;
var j: longint;
s,s1: string;
begin
s1:=''; dx:=false;
str(x,s);
for j:=length(s) downto 1 do
s1:=s1+s[j];
if s=s1 then dx:=true else exit;
end;
function cp(k: longint): boolean;
begin
cp:=false;
if k=sqr(trunc(sqrt(k))) then cp:=true else exit;
end;
begin
write('Nhap M; N: '); readln(m,n);
d1:=0; d2:=0; d3:=0;
if (m<n) and (m>=10) and (n<=100000) then
begin
write('Cac so doi xung la: ');
for i:=m to n do
if dx(i) then
begin
d1:=d1+1;
write(i,' ');
end;
writeln;
writeln('Co ',d1,' so doi xung');
write('Cac so chinh phuong la: ');
for i:=m to n do
if cp(i) then
begin
d2:=d2+1;
write(i,' ');
end;
writeln;
writeln('Co ',d2,' so chinh phuong');
write('Cac so doi xung chinh phuong la: ');
for i:=m to n do
if dx(i) and cp(i) then
begin
d3:=d3+1;
write(i,' ');
end;
writeln;
write('Co ',d3,' so doi xung chinh phuong');
end;
readln
end.