HDU3930 (原根)】的更多相关文章

给定方程 X^A = B (mol C)  ,求 在[0,C) 中所有的解 , 并且C为质数. 设 rt 为 C 的原根 , 则 X = rt^x  (这里相当于求 A^x =B (mol C) 用大步小步算法即可) 那么 ( rt^x ) ^ A = b (mol C) rt^Ax = b (mol C) 由费马小定理, 设 Ax = (C-1)*y +t1   ---------------- ( * ) 可得  rt^t1 =b ( mod C) 这里运用大步小步算法可以计算出 t1 .…
题目:Broot 题意:给出k,m,newx的值,求方程x^k(mod m)=newx的解,其中m为素数. 解法步骤: (1)先暴力求m的原根g (2)大步小步求g^t1(mod m)=newx (3)则g^(t1+n*t2)(mod m)=newx,t2=m-1 (4)x=g^y(mod m),x^k=(g^y)^k=g^(yk)=g^(t1+n*t2) 那么就是求同于方程yk=t1(mod t2),求出y之后带入x=g^y(mod m)解出x #include <iostream> #in…
题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1135 题意:中文题诶- 思路:设m是正整数,a是整数,若a模m的阶等于φ(m),则称a为模m的一个原根.(其中φ(m)表示m的欧拉函数)给出1个质数P,找出P最小的原根. 我们先了解一下阶的概念:满足 a^r Ξ (1 mod m) ---1 的最小 r 即为 a%m的阶,我们可以直接从小到大枚举a, 然后将 r= φ(m) 带入进去, 判断如果满足  1式…
题目:http://poj.org/problem?id=1284 题意:就是求一个奇素数有多少个原根 分析: 使得方程a^x=1(mod m)成立的最小正整数x是φ(m),则称a是m的一个原根 然后有这样的定理: 1.所有奇素数都有原根 2.如果一个数n有原根,那么原根个数为φ(φ(n)) 由性质2就可知道,对于此题的奇素数n,结果就是φ(n-1)…
题目链接: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, 对任…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4992 题意:给出n,输出n的所有原根. 思路:求出n的一个原根x,那么对于所以的i,i<phi(n)且(i,phi(n))=1,x^i%n都是n的原根. int Euler(int n) { int i,ans=n; for(i=2;i*i<=n;i++) if(n%i==0) { ans=ans/i*(i-1); while(n%i==0) n/=i; } if(n>1) ans=ans/…
看别人做的很简单我也不知道是怎么写出来的 自己拿到这道题的想法就是模为素数,那必然有原根r ,将a看做r^a , b看做r^b那么只要求出幂a,b就能得到所求值a,b 自己慢慢化简就会发现可以抵消n然后扩展欧几里得解决,一个个枚举所有模的情况.... 中间利用了欧拉准则可以知道 对所有奇素数而言: a^((p-1)/2) = -1(mod p) 利用上述准则,这样就不用baby_step giant_step的办法了 #include <bits/stdc++.h> using namespa…
http://poj.org/problem?id=1284 题意:给定一个奇素数p,求p的原根个数. 原根: { (xi mod p) | 1 <= i <= p-1 } is equal to { 1, ..., p-1 },则x是p的原根. 题解:结论:奇素数p的原根个数为phi(p-1). 证明: 对于给出的素数p, 首先要明确一点:p的元根必然是存在的(这一点已由Euler证明,此处不再赘述),因此,不妨设其中的一个元根是a0(1<=a0<=p-1) 按照题目的定义,a0…
1319: Sgu261Discrete Roots Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 389  Solved: 172 Description 给出三个整数p,k,a,其中p为质数,求出所有满足x^k=a (mod p),0<=x<=p-1的x. Input 三个整数p,k,a. Output 第一行一个整数,表示符合条件的x的个数. 第二行开始每行一个数,表示符合条件的x,按从小到大的顺序输出. Sample Input 11 3…
Primitive Roots   Description We say that integer x, 0 < x < n, is a primitive root modulo n if and only if the minimum positive integer y which makes x y = 1 (mod n) true is φ(n) .Here φ(n) is an arithmetic function that counts the totatives of n,…