Primitive Roots
Time Limit: 1000MS   Memory Limit: 10000K
Total Submissions: 3381   Accepted: 1980

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

一个数m的1次方,2次方,3次方到n-1次方 mod n 得到的数值各不相同,就说m是n的原根。

一个数是数n的原根就必然与n-1互质,所以求n的原根的数量即是求欧拉函数n-1。

代码:

#include <iostream>
#include <algorithm>
#include <cmath>
#include <vector>
#include <string>
#include <cstring>
#pragma warning(disable:4996)
using namespace std; long long euler(long long n)
{
long long res = n, a = n;
for (long long i = 2; i*i <= a; i++)
{
if (a%i == 0)
{
res = res / i*(i - 1);
while (a%i == 0)a /= i;
}
}
if (a > 1)res = res / a*(a - 1);
return res;
} int main()
{
long long n;
while (cin >> n)
{
cout << euler(n-1) << endl;
}
return 0;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

最新文章

  1. Linux在fstab中因配置错误导致服务器主机无法重启的问题应该如何解决
  2. PhotoShop算法原理解析系列 - 像素化---》碎片。
  3. Action中获取servletAPI对象的方法
  4. C# 编码转换 UTF8转GB2312 GB2312转UTF8
  5. g++与c++扩栈方法
  6. python数据结构-列表-基本操作
  7. sql-数据库的隔离级别
  8. thinking in java Generics Latent typing
  9. filter 以及 orderBy的使用
  10. 奇葩的UI引用LayoutInflater.from问题
  11. Xcode开发和调试总结
  12. 【java设计模式】代理模式
  13. js时间过滤方法
  14. 画PCB之电流与线宽的关系
  15. Java的第6天,学习运算符
  16. 【Elasticsearch】Elasticsearch在windows下的安装方法
  17. Android draw Rect 坐标图示
  18. IDEA Tomcat部署时war和war exploded区别以及平时踩得坑
  19. 性能测试TPS目标值确定-二八原则
  20. window.location.href.substr(window.location.href.length - 6)

热门文章

  1. ng -----监听变化($scope.$watch())
  2. 「Luogu1901」发射站
  3. JVM源码分析-类加载场景实例分析
  4. SQL SERVER查询数据库所有的表名/字段
  5. Python 的 os 与 sys 模块
  6. 单元测试框架TestNg使用总结
  7. partialview 用法
  8. CSS-fontface
  9. 51nod 1368:黑白棋 二分图最大匹配
  10. 洛谷 P4391 [BOI2009]Radio Transmission 无线传输