Pascal

Modified: Tuesday, 04-01-2022 02:02 AM

Cho các số nguyên dương A,B,C khá lớn với C khác 0.

Hãy tính giá trị của biểu thức (A^B) mod C



var a,b,c:longint;
function pow(a,b,c:longint):longint;
begin
    if b=0 then exit(1)
    else
    begin
        if b mod 2=0 then 
           exit(sqr(pow(a,b div 2,c)) mod c)
        else
           exit(a*(sqr(pow(a,b div 2,c)) mod c) mod c); 
    end;
end;

begin
    readln(a,b,c);
    write(pow(a,b,c));
    readln;
end.