首页 > 其他 > 详细

[没有证明]原根求法

时间:2019-09-20 12:47:05      阅读:97      评论:0      收藏:0      [点我收藏+]

  蒟蒻自用,请数论大神们口下留情

 

  由于原根一般比较小,所以可以从2开始暴枚去找

  如果根据原根定义去check是否为原根,单次复杂度$O(phi(P))$

  现有另一种check,复杂度$O(d(phi(P))*log(P-1))$

  $d(x)$是x的质因数个数

  即枚举$phi(P)$的质因数$p_i$,快速幂判断$a^{phi(P)/p_i}$,若都不等于1则$a$是一个原根

 

  必要性显然,充分性需要利用反证法,设$a$满足上述条件但$a^c ==1,c<phi(P)$

  设$u,v$满足$u*c+v*phi(P)==gcd(c,phi(P))$

  $ u*c=gcd(c,phi(P))-v*phi(P) $

  所以 $ a^{gcd(c,phi(P))-v*phi(P)}==a^{u*c}==1 $

  由于$a^{phi(P)}=1$

  所以$a^{gcd(c,phi(P))}=1$

  由于 $gcd(c,phi(P))<phi(P)$,$gcd(c,phi(P))|phi(P)$

  设phi(P)的质因数有$p1,p2,p3......$,则$gcd(c,phi(P))$至少整除$phi(P)/p1,phi(P)/p2......$中的一个

  则$a^{phi(P)/p_i}$至少有一个等于$1$,与假设矛盾。

 

  所以这样求是没问题的..

[没有证明]原根求法

原文:https://www.cnblogs.com/yxsplayxs/p/11556212.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!