POJ 1284求原根个数: 即求 euler(euler(p)) = euler(p-1) 其中p为奇素数 又有 euler(x) = x*(1-1/p1)*...*(1-1/pk) 其中pk为x的质因数#include #include int all, p, ans, num[100000.....
分类:
其他好文 时间:
2014-11-11 19:03:34
阅读次数:
301
给定同余式,求它在内的所有解,其中总是素数。分析:解本同余式的步骤如下 (1)求模的一个原根 (2)利用Baby Step Giant Step求出一个,使得,因为为素数,所以有唯一解。 (3)设,这样就有,其中,那么得到。 (4)求出所有的,可以知道一共有个解,我们求出所有的,然后排个序即...
分类:
其他好文 时间:
2014-10-29 16:36:21
阅读次数:
250
题目大意:p是奇素数,如果{x^i % p | 1 <= i <= p - 1} = {1,2,...,p-1},则称x是p的原根。
给出一个p,问它的原根有多少个。
思路:
{x^i% p | 1 <= i <= p - 1} = {1,2,...,p-1} 等价于
{x^i%(p-1) | 1 <= i <= p - 1} = {0,1,2,...,p-2},
即{x^1,x^2,x^3,…,x^(p-1)}为p的完全剩余系等价于
若x与p-1互质(gcd(x, p-1) = 1),则{x^0,x...
分类:
其他好文 时间:
2014-10-15 20:12:31
阅读次数:
211
Eddy's digital Roots
题目大意:给你一个正整数n,把n的各位上数字加起来,如果结果小于10,则所得结果为n的数字根,如果大于10,则再把上边所得结果各位上的数字加起来。现在给你一个数n,求n^n的数字根
思路:一看数据规模10000^10000,肯定要把n拆分掉。通过找规律发现,求n^n的数字根可转化为先求n的数
字根a,然后求a*n的原根,赋给a,接着依次求a*n,求n-1次,就得到了n^n的数字根。
例如:求5^5的数字
第一种方法:5^5 = 3125 3 + 1 + 2...
分类:
其他好文 时间:
2014-10-13 10:55:59
阅读次数:
155
#include
#include
using namespace std;
typedef long long LL;
int p[100000], c;
LL pow_mod(LL a, LL x, LL m)
{
LL ans = 1;
while(x)
{
if(x&1)
ans = ans * a % m;
a = a * a % m;
x >>= 1;
...
分类:
其他好文 时间:
2014-09-20 23:58:19
阅读次数:
262
题目来源:URAL 1268. Little Chu
题意:输入n 求一个最大的k 使得k^1 k^2 k^3...k^x mod n 后各不相同
思路:mod n 后各不相同 最多有 n个 那么此事k就是原根 因为k
#include
#include
using namespace std;
typedef long long LL;
int p[100000], c;
LL ...
分类:
其他好文 时间:
2014-09-20 22:35:19
阅读次数:
210
何为原根?由费马小定理可知 如果a于p互质 则有a^(p-1)≡1(mod p)对于任意的a是不是一定要到p-1次幂才会出现上述情况呢?显然不是,当第一次出现a^k≡1(mod p)时, 记为ep(a)=k 当k=(p-1)时,称a是p的原根每个素数恰好有f(p-1)个原根(f(x)为欧拉函数)定理...
分类:
其他好文 时间:
2014-09-12 22:05:44
阅读次数:
294
想了很久,只想到枚举的方法,估计会超时吧。原来有这样一条性质:p为素数,则p有phi(p-1)个原根Orz...#include #include #include #include using namespace std;int main(){ int n; while(scanf("%d",&n...
分类:
其他好文 时间:
2014-09-10 10:45:30
阅读次数:
208
定理:假如一个数x有原根,则元根的个数为phi(phi(x)),phi(x)为小于x且与x互质的正整数个数。#include #include using namespace std;int p;int f(int x){ int ans=x; int m=sqrt(x+0.5); ...
分类:
其他好文 时间:
2014-09-09 11:12:28
阅读次数:
222
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4992题意:给出n,输出n的所有原根。思路:求出n的一个原根x,那么对于所以的i,i1) ans=ans/n*(n-1); return ans;}int prime[N],tag[N],cnt;v...
分类:
其他好文 时间:
2014-09-07 23:38:35
阅读次数:
315