1135 原根
基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题

 收藏
 关注

设m是正整数,a是整数,若a模m的阶等于φ(m),则称a为模m的一个原根。(其中φ(m)表示m的欧拉函数)

给出1个质数P,找出P最小的原根。
Input
输入1个质数P(3 <= P <= 10^9)
Output
输出P最小的原根。
Input示例
3
Output示例
2

阶:设a模m的阶为k,则k满足a^k%m==1,且k最小

φ(m)(m的欧拉函数):在[1,m)的区间内有多少个数与m互质

题解:

因为这题的p为质数,所以φ(p)==p-1,那么这题就是要找到最小的a使得a^(p-1)%p==1,且对于所有的k∈[0,p-1)都

不满足a^k%p等于1,(根据费马小定理,对于所有的正整数a,a^(p-1)%p==1一定成立)

方法就是枚举a,对于每一个a判断是否满足条件,可k的范围特别的大,枚举k不实际,那怎么办?其实我们只需要

枚举p-1的因数即可,只要p-1的所有因数都满足其不是a的阶,p-1即是a的阶

#include<stdio.h>
int Pow(long long a, long long b, int mod);
int main(void)
{int n, i, j, k, yz[32000];scanf("%d", &n);k = 0;for(i=2;i*i<=n-1;i++){if((n-1)%i==0)yz[++k] = i;}for(i=2;i<=n-1;i++){for(j=1;j<=k;j++){if(Pow(i, yz[j], n)==1 || Pow(i, (n-1)/yz[j], n)==1)break;}if(j==k+1){printf("%d\n", i);break;}}return 0;
}int Pow(long long a, long long b, int mod)
{long long ans;ans = 1;while(b){if(b%2==0)a = a*a%mod, b /= 2;elseans = ans*a%mod, b--;}return ans;
}

51nod-1135:原根相关推荐

  1. 51nod 1135 原根(求素数最小原根)

    题目链接: 51nod 1135 原根 题意: 求素数p的最小原根. #include <stdio.h> #include <algorithm> #include < ...

  2. (数论)51NOD 1135 原根

    设m是正整数,a是整数,若a模m的阶等于φ(m),则称a为模m的一个原根.(其中φ(m)表示m的欧拉函数) 给出1个质数P,找出P最小的原根. Input 输入1个质数P(3 <= P < ...

  3. 原根(扩展欧几里得+欧拉函数)

    1135 原根 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 设m是正整数,a是整数,若a模m的阶等于φ(m),则称a为模m的一个原根.(其中φ(m)表示m的欧拉函数) ...

  4. 51nod 基础题题解(全)

    基础题(40): 1000 A + B 1005 大数加法 1006 最长公共子序列Lcs 1018 排序 1019 逆序数 1027 大数乘法 1046 A^B Mod C 1057 N的阶乘(大数 ...

  5. Primitive root

    高大上的数论,先入门再说. 原根的定义可以到wiki上找,上面介绍得很清楚. 如果你是个热(bu)爱(dong)祖(ying)国(yu)的人,看这个blog就行了 1.51nod 1135 奇怪的oj ...

  6. 离散对数和原根 欧拉定理证明

    http://www.cppblog.com/luyulaile/archive/2012/04/11/170855.aspx 欧拉定理证明 && 欧拉公式 源地址: http://w ...

  7. 原根(详解+代码实现+例题+快速求解一个数的原根)

    1.原根定义 假设一个数g对于P来说是原根,那么g^i mod P的结果两两不同,且有 1<g<P, 1<i<P,那么g可以称为是P的一个原根 简单来说,g^i mod p ≠ ...

  8. 原根-快速求解一个数的原根

    1.原根定义 假设一个数g对于P来说是原根,那么g^i mod P的结果两两不同,且有 1<g<P, 1<i<P,那么g可以称为是P的一个原根 简单来说,g^i mod p ≠ ...

  9. 51nod 1617 奇偶数组

    传送门 回来看一眼51nod,发现自己掉到rank4了,赶紧切道题回rank3. 一眼不会做,这种东西应该慢慢找规律吧--然后看到数据范围其实比较小,应该是单次log的,那是不是可以分治啊. #inc ...

最新文章

  1. sqlserver用sql语句创建链接服务器
  2. 基于SSM实现的奶茶店会员管理系统
  3. php无限极分类实例,PHP实例:PHP无限极分类
  4. Matlab篇(二)MATLAB中addpath的用法 (转)
  5. 浅谈WeakHashMap
  6. es6语法-对象拓展运算符
  7. 魏武帝 太祖知不可匡正,遂不复献言
  8. womic网络错误_wo mic 电脑版下载-WO Mic Client下载 3.4 最新电脑版 - 河东下载站
  9. snmp使用默认团体名_CactiEZ 中文版snmp默认团体名
  10. app软件测试经验分享
  11. MySQL业务账号需要哪些权限_MySQL 日常运维业务账号权限的控制
  12. Docker的中央仓库
  13. FC-AE-ASM节点卡(支持 FC-AE-ASM 协议)
  14. Android WebView字体放大
  15. python自动抢单_【Python成长之路】基于sikuli jar包,实现淘宝自动抢单功能(1)...
  16. Win10 1809美化
  17. 虚拟机服务器怎么安装驱动程序不正常怎么办,虚拟机安装不上虚拟网络驱动怎么处理...
  18. AutoJs学习-实现文件浏览器
  19. 使用计算机网络可以提高计算机运行速度,如何提高计算机运行速度
  20. 北海兴业:投研能力已成为理财公司谋求差异化发展的重要环节

热门文章

  1. python工资高还是java-Python和Java哪个工资高
  2. 为何python不好找工作-为什么说Python不好找工作?原因在这里!
  3. python自动化测试-Python自动化测试入门,看这一篇就足以
  4. linux下docker部署redis
  5. NIO流程记录(非源码,单reacter单线程)
  6. 打docker镜像_分分钟搞定阿里云私有Docke镜像仓库的搭建
  7. python入门实践19章_求助贴,python编程才能够入门到实践 第19章 19.2.2 代码出错
  8. bootstrap 悬浮固定_开箱测评|悬浮歌词蓝牙音箱,视听享受!
  9. 利用itext包实现java报表打印_利用iText包实现Java报表打印
  10. el-input点击事件