码迷,mamicode.com
首页 > 其他好文 > 详细

费马小定理优化优化多数的乘方

时间:2014-10-29 18:50:13      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   color   ar   sp   div   on   log   

要求

a^b^c mod p

保证gcd(c,p)=1

用费马小定理

b:=quick_mod(b,c,p-1);

c:=quick_mod(a,b,p);

a^c mod p=a^(c mod phi(p)) mod p

而素数的phi函数是无需计算的,即p-1

推广到多个,依次降幂即可。不断应用快速幂。

 

var a,b,c,p,ans:int64;

function quickmod(a,b,p:int64):int64;
var ret:int64;
begin
      ret:=1;
      a:=a mod p;
      while b<>0 do
        begin
          if (b and 1)=1 then ret:=ret*a mod m;
          b:=b>>1;
          a:=a*a mod m;
        end;
      exit(ret);
end;

begin
      read(a,b,c,p);
      b:=quickmod(b,c,p-1);
      ans:=quickmod(a,b,m);
      writeln(ans);
end.

 

费马小定理优化优化多数的乘方

标签:style   blog   io   color   ar   sp   div   on   log   

原文地址:http://www.cnblogs.com/logichandsome/p/4060044.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!