记录编号 196352 评测结果 AAAAAAAAA
题目名称 取余运算 最终得分 100
用户昵称 GravatarFoolMike 是否通过 通过
代码语言 Pascal 运行时间 0.001 s
提交时间 2015-10-21 17:56:05 内存使用 0.17 MiB
显示代码纯文本
var
i,j,l,b,p,k,ans:longint;
begin
assign(input,'dmod.in');
reset(input);
assign(output,'dmod.out');
rewrite(output);
read(b,p,k);
if p=0 then
  begin
  writeln({b,'^',p,' mod ',k,'=',}1);
  exit;
  end;
if p=1 then
  begin
  writeln({b,'^',p,' mod ',k,'=',}b mod k);
  exit;
  end;
j:=b mod k;
ans:=j;
repeat
  inc(i);
  ans:=(ans*j) mod k;
  if ans=j then break;
  until i=p-1;
{writeln(i);}
if i=p-1 then
  begin
  writeln({b,'^',p,' mod ',k,'=',}ans);
  exit;
  end
else
  begin
  ans:=1;
  if p mod i<>0 then l:=p mod i else l:=0;
  for l:=1 to l do
  ans:=(ans*j) mod k;
  writeln({b,'^',p,' mod ',k,'=',}ans);
  exit;
  end;
close(input);
close(output);
end.