По первой части задачи так:
Преобразовываешь число в строку и режешь посимвольно, примерный код:
Код:
var
i,j,m:integer;
s:string;
begin
i:=3546245;
s:=IntToStr(i);
for j:=1 to Length(s) do
begin
m:=StrToInt(s[j]+StringOfChar('0',Length(s)-j));
ShowMessage(IntToStr(m));
end;
end;
вторую часть вопроса я не понял