51nod 1135 原根(原根)】的更多相关文章

题目链接:51nod 1135 原根 设 m 是正整数,a是整数,若a模m的阶等于φ(m),则称 a 为 模m的一个原根.(其中φ(m)表示m的欧拉函数) 阶:gcd(a,m)=1,使得成立的最小的 r,称为 a 对 模m 的 阶. φ(m):在[1,m)的区间内与m互质的数的个数. 求模素数p的原根a的方法: 因为p为素数,所以φ(p)=p-1, 这题就是要找最小的a使得 a^(p-1)%p = 1 成立(根据费马小定理,该式一定成立), 先求p-1所有不同的 质因子 p1,p2-pm, 对任…
题意 题目链接 Sol 可以证明素数的原根不会超过他的\(\frac{1}{4}\) 那么预处理出\(P - 1\)的所有的质因数\(p_1, p_2 \dots p_k\),暴力判断一下,如果$\exists i, a^{\frac{P - 1}{p_i}} \equiv 1 \pmod {P - 1} $ 那么说明\(a\)不是\(P\)的原根,因为根据原根的定义,需要保证\(P-1\)是第一个满足\(a^{P - 1} \equiv 1 \pmod {P - 1}\)的数 #include…
题目链接 建议与上一篇欧拉函数介绍结合食用. 知识点:1.阶:a和模m互质,使a^d≡1(mod m)成立的最小正整数d称为a对模m的阶(指数)   例如: 2^2≡1(mod3),2对模3的阶为2; 2^3≡1(mod7),2对模7的阶为3;2.欧拉函数φ(m):在[1,m)的区间内与m互质的数的个数.可见前一篇blog3.设m是正整数,a是整数,若a模m的阶等于φ(m),则称a为模m的一个原根. 求模素数p的原根a的方法: 对质数 p, φ(p) = p-1, 这题就是要找最小的a使得 a^…
设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解:使用快速幂的时候小心int爆了. #include <stdio.h> #include <math.h> #include <string.h> #define CLR(x)…
%%% dalao Orz ,筛素数到sqrt(n),分解ϕ(p),依次枚举判断就好了 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #include<cmath> #define N 100000 #define LL long long using namespace std; LL prime[100010],tot,cnt,p[10001…
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 AC代码 就是找到最小的数x,使 #include <stdio.h> #include &l…
Primitive Roots Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 5709 Accepted: 3261 Description We say that integer x, 0 < x < p, is a primitive root modulo odd prime p if and only if the set (ximodp)∣1≤i≤p−1{ (x_i mod p) | 1 \leq i \leq…
[题意]给定p,求p的原根g.3<=p<=10^9. [算法]数学 [题解]p-1= p1^a1 * p2^a2 * pk^ak,g是p的原根当且仅当对于所有的pi满足g^[ (p-1)/pi ] ≠ 1 (%p) g一般很小,暴力求. #include<cstdio> #include<cmath> using namespace std; ],tot; int power(int x,int k){ ; while(k){ )ans=1ll*ans*x%p; x=1…
数论: 51nod 1240 莫比乌斯函数 51nod 1135 原根 图论: 51nod 1264 线段相交 51nod 1298 圆与三角形 dp: 数位dp: hdu 4734 51nod 1009…
题目链接:hdu 4861 Couple doubi 题目大意:两个人进行游戏,桌上有k个球,第i个球的值为1i+2i+⋯+(p−1)i%p,两个人轮流取,假设DouBiNan的值大的话就输出YES,否则输出NO. 解题思路: 首先是DouBiNan先取,所以肯定优先选取剩余中值最大的,于是不存在说DouBiNan值小的情况,仅仅有大于和小于. 然后,对于val(i)=1i+2i+⋯+(p−1)i%p来说,仅仅有当i=ϕ(p)=p−1(p为素数)时,val(i)=p−1,其它情况下val(i)=…