Bài 1: (số 36 là sai nha bạn vì số 3 không phải là số chính phương)
const fi='scpk.inp';
fo='scpk.out';
var f:text;
n,i:longint;
s:string;
kt:boolean;
function cp(x:longint):boolean;
begin
if sqr(trunc(sqrt(x)))=x then cp:=true
else cp:=false;
end;
begin
assign(f,fi);reset(f);readln(f,n);close(f);
assign(f,fo);rewrite(f);
str(n,s);
for i:=1 to length(s) do
if s[i]='0' then kt:=false
else
begin
if cp(n)=true then n:=n div 10;
if cp(n)=true then kt:=true else kt:=false;
end;
if kt=true then write(f,'yes') else write(f,'no');
close(f);
end.
Bài 2:
const fi='cthh.inp';
fo='cthh.out';
var f:text;
d,i,x,kt,tong:longint;
s,t:string;
function dcs(x:longint):longint;
begin
dcs:=0;
repeat
dcs:=dcs+1;
x:=x div 10;
until x=0;
end;
begin
assign(f,fi);reset(f);readln(f,s);close(f);
assign(f,fo);rewrite(f);
d:=0;
for i:=1 to length(s) do
if s[i] in ['A'..'Z'] then inc(d);
i:=0; t:=''; tong:=0;
while i<=length(s) do
begin
while (s[i] in ['0'..'9']) and (i<=length(s)) do
begin
t:=t+s[i];
val(t,x,kt);
inc(i);
end;
if dcs(x)<3 then tong:=tong+x;
x:=0;
t:='';
inc(i);
end;
writeln(f,d);
writeln(f,tong);
close(f);
end.