求阶的方法:

根据性质2,直接对ϕ(m)求出因子即可,从小到大依次判断是不是符合ad = 1(mod m)(d是ϕ(m)的因子)

求最小的原根的方法:

根据性质8,对ϕ(m)求出素因子,从1开始不断测试即可,因为最小的原根很容易暴力得到。

求原根代码:(下面代码是求素数p的原根,如果不是素数,需要求出p的欧拉函数值,由于是素数,所以欧拉函数值为p-1)

 ll pow(ll a, ll b, ll m)
{
a %= m;
ll ans = ;
while(b)
{
if(b & )ans = ans * a % m;
a = a * a % m;
b /= ;
}
return ans % m;
}
int tot;//素因子个数
int a[];
void get_fact(ll n)//质因数分解n
{
for(ll i = ; i * i <= n; i++)
{
if(n % i == )
{
a[tot++] = i;
while(n % i == )n /= i;
}
}
if(n != )a[tot++] = n;
}
bool g_test(ll g, ll p)//测试g是不是p的原根 此处p是素数 欧拉函数值为p - 1
{
for(ll i = ; i < tot; i++)
{
if(pow(g, (p - ) / a[i], p) == )return false;
}
return true;
}
int proot(ll p)
//求解p最小原根,本题p为素数
//返回最小的原根
{
get_fact(p - );//素数的欧拉函数值为p - 1
int g = ;
while()
{
if(g_test(g, p))return g;
g++;
}
}

最新文章

  1. RFID-RC522、FM1702SL、M1卡初探
  2. C#+ html 实现类似QQ聊天界面的气泡效果
  3. 详解HTML5中rel属性的prefetch预加载功能使用
  4. javascript面向对象方式,调用属性和方法
  5. 实战MySQL集群,试用CentOS 6下的MariaDB-Galera集成版
  6. homework-04 单词方阵
  7. ZOJ 2015 10月份 月赛 3911 Prime Query
  8. 逆转字符串leetcode
  9. 查看Linux声卡基本信息[转载]
  10. webrtc学习笔记1(建立连接基本流程)
  11. Java中 Linux下安装Redis
  12. nginx/php的redis模块扩展
  13. UML作业第二次:类图中类的表示
  14. 关于window.localtion的用法几点总结
  15. 【springboot】【redis】springboot结合redis,操作List集合实现时间轴功能
  16. js對象
  17. andorid EditView
  18. 一份不太简短的LaTeX模板
  19. 按键精灵如何调用Excel及按键精灵写入Excel数据的方法教程---入门自动操作表格
  20. SpringMyBatisDay02

热门文章

  1. poj 3750 小孩报数问题
  2. 万物智联,腾讯云 IoT 边缘计算揭秘——云+未来峰会开发者专场回顾
  3. 在WPF中自定义控件
  4. js时间字符串转时间戳
  5. 修改django 后台admin用户的密码
  6. 流畅的python和cookbook学习笔记(八)
  7. the resource is not on the build path of a php project
  8. POI 2000 ------Stripes
  9. C语言--清理getchar缓存
  10. AngularJS实现原理