POJ 1284 (原根)

原创 2018年04月17日 10:19:24

题意:给一个奇素数,求它原根的数目。

定理:如果p有原根,则他有phi(phi(p))个原根,p为素数是,phi(p) = p-1,原根数量就为phi(p-1);

下面给出原根的求法:

对于数m,先求ϕ(m) 的素幂分解式,即

                φ(m) = p1^e1*p2^e2*……*pk^ek;

然后枚举g,若g满足g^(φ(m)/pi )!= 1 (mod m) ,i = 1,2,3……,k;

则g为m的一个原根

#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
#include <cmath>

using namespace std;

int euler_phi(int n)
{
    int m = sqrt(n+0.5);
    int ans = n;
    for(int i = 2; i <= m; i++)
    if(n%i==0)
    {
        ans = ans/i*(i-1);
        while(n%i==0)
            n /= i;
    }

    if(n>1)
        ans = ans/n*(n-1);
    return ans;
}

int main()
{
    int p;
    while(cin>>p)
    {
        int ans = euler_phi(p-1);
        cout<<ans<<endl;
    }
    return 0;
}



poj 1284 原根

现在越来越感觉到  ACMer如果想成为大牛 要不断的宽展自己的知识面 学习各种知识  明白定理的推导过程 这样才会有更大进步。//原根+完全剩余系: //看了别人的解题报告 明白了原根的重要定理: ...
  • wahaha1_
  • wahaha1_
  • 2012-10-16 20:33:42
  • 1468

原根小结 (poj 1284)

关于原根的一些知识点: 定义1:设,,使得成立的最小的,称为对模的阶,记为。 定理1:如果模有原根,那么它一共有个原根。 定理2:若,,,则。 定理3:如果为素数,那么素数一...
  • whai362
  • whai362
  • 2015-02-05 10:50:27
  • 1174

poj 1284 Primitive Roots 【原根】【数论】

欧拉函数 原根
  • u010468553
  • u010468553
  • 2014-08-04 15:23:25
  • 1118

原根 poj 1284

原根定义:假设一个数g对于P来说是原根,那么g^i mod P的结果两两不同,          且有 1 简单来说,g^i mod p ≠ g^j mod p (p为素数) 其中i≠j...
  • acm_code
  • acm_code
  • 2014-06-22 21:33:03
  • 528

原根 poj 1284

题意: 一个集合{(X^i mod p} |  1与集合 {1 ,2 ,……, p-1}是相同的 原根定义   原根Primitive Root。    设m是正整数,a是整数,若a模m的阶等...
  • luyuncheng
  • luyuncheng
  • 2012-09-29 22:48:19
  • 756

POJ 1284 原根(欧拉函数)

欧拉函数 原根
  • neighthorn
  • neighthorn
  • 2016-09-27 18:30:32
  • 246

poj 1284 求原根

题目大意:给出一个奇素数,求出他的原根的个数,定义n的原根x满足条件0 关于这道题。如果知道欧拉函数的话,看出的答案是phi(n-1)其实也不难 定理:如果p有原根,则它恰有φ(φ...
  • xiaolonggezte
  • xiaolonggezte
  • 2017-05-23 11:20:23
  • 252

poj1284Primitive Roots【欧拉函数 原根】

Language: Default Primitive Roots Time Limit: 1000MS   Memory Limit: 10000K Tota...
  • R1986799047
  • R1986799047
  • 2016-06-23 18:06:11
  • 221

POJ 1284 Primitive Roots (原根)

Primitive Roots Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 3219  ...
  • u013068502
  • u013068502
  • 2015-04-25 11:56:21
  • 477

POJ 1284 Primitive Roots 原根

题目来源:POJ 1284 Primitive Roots #include const int maxn = 70000; int phi[maxn]; void phi_table(int n)...
  • u011686226
  • u011686226
  • 2014-08-17 12:29:34
  • 716
收藏助手
不良信息举报
您举报文章:POJ 1284 (原根)
举报原因:
原因补充:

(最多只允许输入30个字)