var
n, i, k: integer;
begin
repeat
write('Введите натуральное число n= ');
read(n);
until n > 0;
if n = 1 then writeln('Невозможно разложить на произведение простых множителей.')
else
begin
write(n, '=');
i := 2;
while i <= n do
begin
k := 0;
while n mod i = 0 do
begin
k := k + 1;
n := n div i;
end;
if i < n then
begin
if k = 1 then write(i, '*')
else if k > 1 then write(i, '^', k, '*');
end
else
begin
if k = 1 then write(i)
else if k > 1 then write(i, '^', k);
end;
i := i + 1;
end;
end;
end.
Тут значительно легче без процедур решить. Вот, получайте!
program prim;
Var
s : string;
t : char;
k: integer;
begin
writeln ('Введите строку');
readln (s);
writeln ('Введите символ, который надо удалить');
readln (t);
while pos(t,s)<>0 do
begin
k:=pos(t,s);
Delete(s, k, 1);
end;
writeln ('Результат после удаления: ');
writeln(s);
end.