【题目大意】

给你一个素数n,求n的原根个数。

【题解】

关于原根有一个定理:

定理:如果模有原根,那么它一共有个原根。

所以这题就是求phi[phi[n]]

很简单吧。。。(如果知道这个定理的话)

 /**************
POJ 1284
by chty
2016.11.10
**************/
#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<ctime>
#include<cmath>
#include<algorithm>
using namespace std;
#define FILE "read"
#define MAXN 70010
int n,cnt,prime[MAXN],isprime[MAXN],phi[MAXN];
inline int read()
{
int x=,f=; char ch=getchar();
while(!isdigit(ch)) {if(ch=='-') f=-; ch=getchar();}
while(isdigit(ch)) {x=x*+ch-''; ch=getchar();}
return x*f;
}
void get()
{
phi[]=;
for(int i=;i<=;i++)
{
if(!isprime[i]) prime[++cnt]=i,phi[i]=i-;
for(int j=;j<=cnt&&prime[j]*i<=;j++)
{
isprime[prime[j]*i]=;
if(i%prime[j]==) {phi[prime[j]*i]=phi[i]*prime[j];break;}
else phi[prime[j]*i]=phi[i]*(prime[j]-);
}
}
}
int main()
{
freopen(FILE".in","r",stdin);
freopen(FILE".out","w",stdout);
get();
while(~scanf("%d",&n)) printf("%d\n",phi[phi[n]]);
return ;
}

【POJ1284】Primitive Roots的更多相关文章

  1. 【POJ1284】Primitive Roots 欧拉函数

    题目描述: 题意: 定义原根:对于一个整数x,0<x<p,是一个mod p下的原根,当且仅当集合{ (xi mod p) | 1 <= i <= p-1 } 等于{ 1, .. ...

  2. 【HDU 4992】 Primitive Roots (原根)

    Primitive Roots   Description We say that integer x, 0 < x < n, is a primitive root modulo n i ...

  3. 【poj 1284】Primitive Roots(数论--欧拉函数 求原根个数){费马小定理、欧拉定理}

    题意:求奇质数 P 的原根个数.若 x 是 P 的原根,那么 x^k (k=1~p-1) 模 P 为1~p-1,且互不相同. (3≤ P<65536) 解法:有费马小定理:若 p 是质数,x^( ...

  4. POJ1284:Primitive Roots——题解

    http://poj.org/problem?id=1284 给一个奇质数p,求p的原根数量. 有一个结论:当正整数n存在原根时,其一共有phi(phi(n))个不同余的原根. 所以答案为phi(p- ...

  5. POJ_1284 Primitive Roots 【原根性质+欧拉函数运用】

    一.题目 We say that integer x, 0 < x < p, is a primitive root modulo odd prime p if and only if t ...

  6. poj1284 Primitive Roots

    Primitive Roots Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 4775   Accepted: 2827 D ...

  7. POJ1284 Primitive Roots [欧拉函数,原根]

    题目传送门 Primitive Roots Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 5434   Accepted:  ...

  8. Primitive Roots(poj1284)

    Primitive Roots Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 3928   Accepted: 2342 D ...

  9. Primitive Primes - 题解【数学】

    题面 It is Professor R's last class of his teaching career. Every time Professor R taught a class, he ...

随机推荐

  1. osquery简单试用

    备注: osquery  facebook 开源的将操作系统指标转换为sql 查询,方便好用,很适合devops 性能分析,系统监控 1. 安装 参考 https://osquery.io/downl ...

  2. consul dns 转发配置

    测试使用dnsmasq.  优势:可以方便的进行应该编码,进行动态域名解析,容错处理.   因为consul 默认的dns 为127.0.0.1 8600  所以配置如下:  文件目录: /etc/d ...

  3. 【转】关于gcc、glibc和binutils模块之间的关系

    原文网址:http://www.mike.org.cn/articles/linux-about-gcc-glibc-and-binutils-the-relationship-between-mod ...

  4. 在window上使用eclipse对hadoop进行编程

    步骤: 1.下载hadoop-eclipse-plugin-1.2.1.jar 2.把 hadoop-eclipse-plugin-1.2.1.jar"放到Eclipse的目录的" ...

  5. debian修改连接数限制

    golang写的socket做压力测试的时候,提示too many open files,解决方法如下 sudo gvim /etc/security/limits.conf 添加 * - nofil ...

  6. 关于NHibernate的一些代码

    SessionManager using System; using System.IO; using System.Runtime.Serialization; using System.Runti ...

  7. Java 五子棋小游戏

    package Day8_06; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import ...

  8. Spring的常用下载地址

    第一种,简单粗暴直接 1 http://repo.springsource.org/libs-release-local/org/springframework/spring/3.2.4.RELEAS ...

  9. node的模块管理

    /* *一:从node_modules目录中加载模块; * 向这样的写法: * require("aa.js") * 则node将aa.js文件视为node_modules目录下的 ...

  10. Linux: su sudo sudoer

    日常操作中为了避免一些误操作,更加安全的管理系统,通常使用的用户身份都为普通用户,而非root.当需要执行一些管理员命令操作时,再切换成root用户身份去执行. 普通用户切换到root用户的方式有:s ...