Viết chương trình pascal nhập số n có đúng 3 chữ số (nếu sai thì thông báo trên màn hình không thực hiện thực hiện kiểm tra n có phải là số chính phương không? tính tổng các chữ số n xuất ra màn hình các số chính phương từ 0 đến tổng các chữ số của n (tính ở câu trên) giúp mình vs đề thi ấy!!!
2 câu trả lời
Program BTT;
Uses crt;
Var n,i,s: integer;
Function SCP(b: longint): boolean;
Begin
If b=sqr(trunc(sqrt(b))) then exit(true);
exit(false);
End;
Begin
Clrscr;
Write('Nhap n: '); Readln(n);
If (n>99) and (n<1000) then
Begin
If SCP(n) then Writeln(n,' la so chinh phuong')
Else Writeln(n,' khong phai so chinh phuong');
s:=0;
While n<>0 do
Begin
s:=s+n mod 10;
n:=n div 10;
End;
Writeln('Tong cac chu so cua n la: ',s);
Write('Cac so chinh phuong tu 1 den ',s,' la: ');
For i:=1 to s do
If SCP(i) then Write(i,' ');
End
Else Write('Khong thuc hien!');
Readln
End.
Program bt;
uses crt;
var a,code,n,i,m,s: integer;
st:string;
Begin
Clrscr;
read(n);
str(n,st);
if length(st) <> 3 then
begin
clrscr;
write('So nhap vao khong dung yeu cau!');
end
else
Begin
m:= trunc(sqrt(n));
if (sqr(m) = n) then writeln(m,' la so chinh phuong')
else writeln(n,' khong phai la so chinh phuong');
s:=0;
for i:= 1 to length(st) do
begin
val(st[i],a,code);
if code = 0 then s:=s+a;
end;
writeln('Tong cac chu so cua ',n,' la : ',s);
for i:= 0 to s do
begin
m:=trunc(sqrt(i));
if (sqr(m) = i) then writeln(i);
end;
end;
Readln;
End.