Poj 1284 Primitive Roots
文章目录
- Description
- 题意:
- 题解:
- 代码:
Poj 1284
Time Limit: 1000MS Memory Limit: 10000K
Total Submissions: 6485 Accepted: 3697
Description
We say that integer x, 0 < x < p, is a primitive root modulo odd prime
p if and only if the set { (xi mod p) | 1 <= i <= p-1 } is equal to {
1, …, p-1 }. For example, the consecutive powers of 3 modulo 7 are
3, 2, 6, 4, 5, 1, and thus 3 is a primitive root modulo 7. Write a
program which given any odd prime 3 <= p < 65536 outputs the number of
primitive roots modulo p.
Input
Each line of the input contains an odd prime numbers p. Input is
terminated by the end-of-file seperator.
Output
For each p, print a single number that gives the number of primitive
roots in a single line.
Sample Input
23
31
79
Sample Output
10
8
24
题意:
给定一个p,存在一个x,使得xi%p的值的集合(i的范围是1~p-1)是{1,2…p-1},求出x是多少?
题解:
数论题,涉及欧拉公式
先介绍一个概念:
设m是正整数,a是整数,若a模m的阶等于φ(m),则称a为模m的一个原根。(其中φ(m)表示m的欧拉函数)
假设一个数g对于P来说是原根,那么gi mod P的结果两两不同,且有 1<g<P, 0<i<P,那么g可以称为是P的一个原根,归根到底就是g(P-1) = 1 (mod P)当且仅当指数为P-1的时候成立.(这里P是素数).
选自百度百科
结合到本题,x就是p的一个原根,那我们只需要找到满足xp-1=1(mod P)这个式子就可以,这个式子也就是欧拉公式的φ(p-1)
欧拉公式的讲解可以看这里
代码:
#include<iostream>
using namespace std;
typedef long long ll;
ll Euler(ll n){ll res=n;for(ll i=2;i*i<=n;i++){if(n%i==0){n/=i;res=res-res/i;}while(n%i==0)n/=i;}if(n>1)res=res-res/n;return res;
}
int main()
{int p;while(cin>>p){cout<<Euler(p-1)<<endl;}return 0;
}
Poj 1284 Primitive Roots相关推荐
- poj 1284 Primitive Roots(原根+欧拉函数)
http://poj.org/problem?id=1284 原根 题意:对于奇素数p,假设存在一个x(1<x<p),(x^i)%p两两不同(0<i<p),且解集等于{1,2. ...
- POJ - 1284 Primitive Roots(原根+欧拉函数)
题目链接:点击查看 题目大意:给出一个模数 p ,求 p 有多少个原根 题目分析:算是补充了一个知识点吧,模数 p 的原根个数为 p[ p[ n ] ] ,p 为欧拉函数 证明博客:https://b ...
- Codeforces Round #174 (Div. 2) Cows and Primitive Roots(数论)
Cows and Primitive Roots time limit per test 2 seconds memory limit per test 256 megabytes input sta ...
- 原根 poj 1284
原根定义:假设一个数g对于P来说是原根,那么g^i mod P的结果两两不同, 且有 1<g<P, 1<i<P,那么g可以称为是P的一个原根 简单来说,g^i ...
- poj-1284(Primitive Roots)(欧拉函数运用)
题目链接:http://poj.org/problem?id=1284 题意:求解p的原根的个数,此题p是素数,φ(p) = p - 1; 题解:定理:设 p > 1是整数,如果模p存在一个原根 ...
- POJ1284:Primitive Roots——题解
http://poj.org/problem?id=1284 给一个奇质数p,求p的原根数量. 有一个结论:当正整数n存在原根时,其一共有phi(phi(n))个不同余的原根. 所以答案为phi(p- ...
- poj1284 Primitive Roots
考虑互质的两个数a < n, a是n的原根当且仅当对任意的p < φ(n)有ap mod n ≠ 1(φ(n)是n的欧拉函数). 也即等价于集合ap(p < φ(n)) 与n的简化剩 ...
- POJ 3471 Integral Roots(素数、因数)
题目链接:http://poj.org/problem?id=3471 题意:给出一个多项式f(x),求f(x)=0所有的整数根. 思路:由于求的是f(x)的整数根,设它的整数根分别为x1,x2--, ...
- Primitive roots
指数与原根的定义: 设m>1, (a,m)=1 则使 a^r=1(mod m) 成立的最小正整数r,称为a对模m的指数,记符号为delta: 根据Euler定理,知道r=phi(m)的时候成立 ...
最新文章
- 同一label显示不同字体
- 【LeetCode笔记】剑指 Offer 16. 数值的整数次方(Java、分治)
- C++ 判断进程是否存在
- 可以在线测试血糖的软件,血糖也能自己测,糖护士荷智能血糖仪体验:测血糖就这么简单...
- eclipse创建第一个JSP项目
- 增值税计算机模拟纳税申报,增值税纳税申报系统中的CBR方法实现
- 给初学日语者的几点建议——词汇篇
- EasyExcel自动设置列宽
- 学习java的第十七天,房贷简易计算器,三角形判断、面向对象重写方法的学习
- 学大数据一定要会Java开发吗?
- Vuetify学习笔记(一)gird栅格系统
- Iaas、Paas、Saas都是什么意思?
- gdc函数(最大公约数)
- 轻型货车鼓式制动器设计(论文+CAD图纸+Catia三维图+开题报告+任务书+翻译……)
- 服务器被入侵,执行了2个非常危险的命令
- 【PC】电子书阅读软件推荐
- 十万行业质变正当时:华为云解出了一道产业AI公式
- [淘宝客技术篇006]如何登录阿里妈妈-《登录淘宝网·二维码实现法》(下)
- 基于 layui 的纯前端框架 cy-ui
- 大数据时代中的差旅管理
热门文章
- 按照学号查找学生_[源码和文档分享]基于JAVA和MYSQL数据库的学生成绩管理系统...
- JDK安装及java环境配置_JDK安装及Java环境变量配置
- matlab 抽样判决代码,matlab抽样判决器
- 凉凉!面试阿里我被Redis技术专题给搞的昏倒在地~
- python +appium实现原理_python_appium使用原理
- egg前面加什么_国威说阀:阀门前面为什么加国标美标日标之类的?
- require引入js vue_请教 关于使用require 引入vue 和公共js的问题
- win10右键一直转圈_Win10电脑开机一直转圈无法进入系统的解决方法
- c语言中文件如何插入数据,急求如何将下列C语言程序数据存储到文件中?
- 455. 分发饼干001(贪心算法+详解)