[Мы решаем ваши проблемы с Си и Паскалем ]
Главная » Статьи » Задачи с acm.timus.ru » Пакет решений на 15.03.08

1014
Const
  D: array[1..4] of Integer = (2,3,5,7);
Var
  S,T,R: String;
  H: Char;
  A,I,J,K,K2,K3,M,N: LongInt;
Begin
  FillChar(R,SizeOf(R),'9');
  R[0]:=#255;
  S:='';
  Readln(A);
  If A=1 then begin
    Writeln('1');
    Halt;
  End;
  If A=0 then begin
    Writeln('10');
    Halt;
  End;
  K2:=0; K3:=0;
  For I:=1 to 4 do
    While (A mod D[I])=0 do begin
      S:=S+Chr(D[I]+48);
      If I=1 then Inc(K2);
      If I=2 then Inc(K3);
      A:=A div D[I];
    End;
  If A<>1 then begin
    Writeln('-1');
    Halt;
  End;
  K:=K2;
  If K>K3 then K:=K3;
  For I:=0 to K do begin
    T:=S;
    For J:=1 to I do begin
      Delete(T,Pos('2',T),1);
      Delete(T,Pos('3',T),1);
      T:=T+'6';
    End;
    While Pos('33',T)>0 do begin
      Delete(T,Pos('33',T),2);
      T:=T+'9';
    End;
    While Pos('222',T)>0 do begin
      Delete(T,Pos('222',T),3);
      T:=T+'8';
    End;
    While Pos('22',T)>0 do begin
      Delete(T,Pos('22',T),2);
      T:=T+'4';
    End;
    For N:=1 to Length(T) do
      For M:=2 to Length(T) do
        If T[M-1]>T[M] then begin
           H:=T[M-1];
           T[M-1]:=T[M];
           T[M]:=H;
        End;
    If T[0]<R[0] then R:=T;
    If (T[0]=R[0]) and (T<R) then R:=T;
  End;
  Writeln(R);
End.

Категория: Пакет решений на 15.03.08 | Добавил: solver (15.03.2008)
Просмотров: 968