如何求原根
2016-01-11 18:12
239 查看
说这种最好就是举个例子
比如说求81的所有原根
先说欧拉函数通式:
通式:φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn),其中p1, p2……pn为x的所有质因数,x是不为0的整数。φ(1)=1(唯一和1互质的数(小于等于1)就是1本身)。 (注意:每种质因数只一个。比如12=2*2*3那么φ(12)=12*(1-1/2)*(1-1/3)=4
1.先算81的欧拉函数,结果为54, 又54的素因数有2和3, 54除以这两个素因数得到18和27
2. 从2,4,5开始验算 2^18 != 1 mod 81 ,2^27 != 1 mod 81, 所以2是81的原根(只要找到一个由素因数的出来的次数mod81不等于1的就可以停止了)
3.原根的个数就是就81算两次欧拉函数,得到18,那就用18个原根,54的简化剩余系的各个数字作为第二步找到的原根的次数就行
54的简化剩余系(其实就是与54互素的)为{1,5,7,11,13,17,19,23,25,29,31,35,37,41,43,47,49,53}
那么81的所有原根为{2^1, 2^5, 2^7,2^11............2^53}
比如说求81的所有原根
先说欧拉函数通式:
通式:φ(x)=x(1-1/p1)(1-1/p2)(1-1/p3)(1-1/p4)…..(1-1/pn),其中p1, p2……pn为x的所有质因数,x是不为0的整数。φ(1)=1(唯一和1互质的数(小于等于1)就是1本身)。 (注意:每种质因数只一个。比如12=2*2*3那么φ(12)=12*(1-1/2)*(1-1/3)=4
1.先算81的欧拉函数,结果为54, 又54的素因数有2和3, 54除以这两个素因数得到18和27
2. 从2,4,5开始验算 2^18 != 1 mod 81 ,2^27 != 1 mod 81, 所以2是81的原根(只要找到一个由素因数的出来的次数mod81不等于1的就可以停止了)
3.原根的个数就是就81算两次欧拉函数,得到18,那就用18个原根,54的简化剩余系的各个数字作为第二步找到的原根的次数就行
54的简化剩余系(其实就是与54互素的)为{1,5,7,11,13,17,19,23,25,29,31,35,37,41,43,47,49,53}
那么81的所有原根为{2^1, 2^5, 2^7,2^11............2^53}
相关文章推荐
- C# 使用VS导进自己写的dll或者第三方dll
- Unity日常技巧
- C# winform combobox控件中子项加删除按钮(原创)
- ibatis 参数类型为map,map里面有list
- 网易首页导航封装类优化
- poj--3169--Layout(简单差分约束)
- radware alteon 负载均衡器设置
- 高仿网易评论列表效果之界面生成(三)
- python数字图像处理(3):图像像素的访问与裁剪
- poj--3169--Layout(简单差分约束)
- 根据结构体的一部分,进行排序,从而对该结构体排序
- SQL Server中使用正则表达式
- final关键字
- linux消息队列编程实例
- 高仿网易评论列表效果之数据准备(二)
- win键盘映射成mac键盘
- 生命太短暂,我没时间讨厌你
- 如何在修改bug时切换分支保留修改又不提交
- 高仿网易评论列表效果之界面分析(一)
- FileMode枚举