讨论 / 快速幂
yxycondor 2015-08-10 03:17:26
点我顶贴 收藏 删除
楼上好评 快速幂确实可以解决

program circle;

var a,n,m,k,x,gc,ans,ans2:longint;

function gcd(x,y:longint):longint;

var nn:longint;

begin

while x mod y<>0 do

begin

nn:=x;

x:=y;

y:=nn mod y;

end;

gcd:=y;

end;

begin

readln(n,m,k,x);

gc:=n div gcd(n,m);

a:=10;

a:=a mod gc;

ans:=1;

while k>0 do

begin

if k mod 2=1 then ans:=ans*a mod gc;

k:=k div 2;

a:=(a*a) mod gc;

end;

ans2:=x+ans*m;

if ans2>=n then ans2:=ans2 mod n;

writeln(ans2);

end.

查看更多回复
提交回复