program Hello;
uses crt;
var n,snt:string;
tong,i,a,d,sl:longint;
function nt(n:longint):boolean;
var i:longint;
begin
if n < 2 then exit(false);
for i:=2 to trunc(sqrt(n)) do
if n mod i = 0 then exit(false);
exit(true);
end;
procedure tinh;
begin
if n[1] = '-' then
begin
sl:= length(n) - 1;
delete(n,1,1);
end
else sl:= length(n);
for i:= 1 to length(n) do
begin
val(n[i],a);
tong:= tong + a;
if a mod 3 = 0 then inc(d);
if nt(a) = true then
snt:= snt + n[i] + ' ';
end;
end;
begin
readln(n);
tinh;
writeln('So chu so: ', sl);
writeln('Tong cac chu so: ', tong);
writeln('So chu so chia het cho 3: ', d);
writeln('Cac so nguyen to: ', snt);
readln;
end.
======================================
Một cách khác:
program Hello;
uses crt;
var n,snt:string;
tong,i,a,d,sl:longint;
procedure tinh;
begin
if n[1] = '-' then
begin
sl:= length(n) - 1;
delete(n,1,1);
end
else sl:= length(n);
for i:= 1 to length(n) do
begin
val(n[i],a);
tong:= tong + a;
if a mod 3 = 0 then inc(d);
if (a = 2) or (a = 3) or (a = 5) or (a = 7) then
snt:= snt + n[i] + ' ';
end;
end;
begin
readln(n);
tinh;
writeln('So chu so: ', sl);
writeln('Tong cac chu so: ', tong);
writeln('So chu so chia het cho 3: ', d);
writeln('Cac so nguyen to: ', snt);
readln;
end.