помоги решить задачу в паскале!
Даны натуральное число n, целые числа а1,…,аn (последовательности идущих подряд членов) состоящие из степеней пятерки. Определить процедуру, позволяющую распознавать степень пятерки. Программу оформить в виде диалога. Выход из программы – нажатием Esc.

  • Т. к. для целых типов действует ограничение, то для типа Longint максимальная степень ограничивается уже 5^13.
    Поэтому я использовал тип String.

    function Mult(A : String) : String;
    var
    B : String;
    N, P : Word;
    begin
    B := ''; P := 0;
    for N := Length(A) downto 1 do
    begin
    P := P + (Ord(A[N]) - 48) * 5;
    B := Chr(P mod 10 + 48) + B;
    P := P div 10;
    end;
    if P > 0 then
    B := Chr(P + 48) + B;
    Mult := B;
    end;

    var
    A : array [0..364] of String;
    i, N : Word;
    begin
    A[0] := '1';
    Write('N (от 1 до 364) = '); ReadLn(N);
    if N > 364 then begin WriteLn('Превышение диапазона. '); Halt; end;
    for i := 1 to N do
    A[ i ] := Mult(A[i - 1]);
    WriteLn('5^', N, '=', A[N]);
    end.

    Выводит любую степень пятёрки до 364 включительно!
    Чтобы работать с ещё большими числами:
    — во-первых: сработает ограничение на длину строки в TP
    — во-вторых: нужно переделывать и работать со списками, ибо памяти, отводимой TP под переменные, может не хватить.
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Основное сделано!
    Дальше сам ;-)

  • чем помочь? что ты сделал? где твой исходник? или может тебе готовая прога нужна? пиши на почту, разберемся