码迷,mamicode.com
首页 > 其他好文 > 详细

计蒜客 - 质数原根

时间:2019-04-30 23:36:01      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:display   sdn   text   需要   href   ima   div   for   9.png   

题目:

技术图片

样例:

技术图片

思路:

首先要清楚原根这一概念,其实在数论中还挺重要的. 认识原根又需要了解的概念

移步巨巨的博客: 阶和原根

这道题用到的就是博客里的定理2: 每一个素数p都有?(p1)个原根。事实上, 每一个数m都有?(?(m))个原根(如果有的话).
所以直接求?(p1)即可
代码:
 1 #include <iostream>
 2 using namespace std;
 3 
 4 int main()
 5 {
 6     ios::sync_with_stdio(false);
 7     cin.tie(0);
 8     int p;
 9     while (cin >> p) {
10         int n = p - 1;
11         int ans = p - 1;
12         for (int i = 2; i * i <= n; i++) {
13             if (n % i == 0) {
14                 ans = ans / i * (i - 1);
15                 while (n % i == 0)
16                     n /= i;
17             }
18         }
19         if (n > 1)
20             ans = ans / n * (n - 1);
21         cout << ans << endl;
22     }
23     return 0;
24 }

 

 

计蒜客 - 质数原根

标签:display   sdn   text   需要   href   ima   div   for   9.png   

原文地址:https://www.cnblogs.com/AntonLiu/p/10798361.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!