HDU 2619 - Love you Ten thousand years (数论)
来源:互联网 发布:简述数据预处理的内容 编辑:程序博客网 时间:2024/05/15 16:48
题意
求出小于n的数的个数,满足
思路
请教了SkyWalkerT巨巨。
其实是一个结论题。
对正整数(a,m)=1,如果 a 是模 m 的原根,那么 a 是整数模n乘法群(即加法群 Z/mZ 的可逆元,也就是所有与 m 互素的正整数构成的等价类构成的乘法群)Zn×的一个生成元。由于Zn×有
φ(m) 个元素,而它的生成元的个数就是它的可逆元个数,即φ(φ(m)) 个,因此当模m有原根时,它有φ(φ(m)) 个原根。
代码
#include <stack>#include <cstdio>#include <list>#include <cassert>#include <set>#include <iostream>#include <string>#include <vector>#include <queue>#include <functional>#include <cstring>#include <algorithm>#include <cctype>#include <string>#include <map>#include <cmath>using namespace std;#define LL long long#define ULL unsigned long long#define SZ(x) (int)x.size()#define Lowbit(x) ((x) & (-x))#define MP(a, b) make_pair(a, b)#define MS(arr, num) memset(arr, num, sizeof(arr))#define PB push_back#define X first#define Y second#define ROP freopen("input.txt", "r", stdin);#define MID(a, b) (a + ((b - a) >> 1))#define LC rt << 1, l, mid#define RC rt << 1|1, mid + 1, r#define LRT rt << 1#define RRT rt << 1|1const double PI = acos(-1.0);const int INF = 0x3f3f3f3f;const double eps = 1e-8;const int MAXN = 1e7 + 2;const int MOD = 1e9 + 7;const int dir[][2] = { {-1, 0}, {0, -1}, { 1, 0 }, { 0, 1 } };int cases = 0;typedef pair<int, int> pii;LL get_phi(int n){ int m = (int)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 n; while (~scanf("%d", &n)) { printf("%d\n", get_phi(get_phi(n))); } return 0;}
0 0
- HDU 2619 - Love you Ten thousand years (数论)
- hdu 2619 Love you Ten thousand years(数论,待解决)
- HDU 2653 Waiting ten thousand years for Love
- HDU 2653 Waiting ten thousand years for Love
- HDU 2653Waiting ten thousand years for Love
- Waiting ten thousand years for Love
- Hdu 2579 Dating with girls(2) && hdu 2653 Waiting ten thousand years for Love【Bfs】
- hdoj 2653 Waiting ten thousand years for Love(优先队列+BFS)
- HDU2653 Waiting ten thousand years for Love (三维广搜+优先队列)
- Concurrent Ten Thousand Connections.
- A thousand years
- hdu 1214 圆桌会议 数论 How strong I want to love you again!
- Ten years. One vision
- 十年,ten years
- The Recent Ten Years
- lessen ten years
- 十年 Ten years
- hdu 2816 I Love You Too
- 【HDOJ 1003】 Max Sum
- java之类型转换
- 约瑟夫环
- UITableView编程1:实例
- 【Uni2D】Uni2DEditorTextureAtlasPacker
- HDU 2619 - Love you Ten thousand years (数论)
- 车牌号
- iOS开发 UI Button基础
- QT SQLite 多数据库操作大全
- Tree Cutting (树形DP)
- 一道位运算技巧题
- SDUT 2886 - Weighted Median (思维)
- UITableView编程2:相关的两个协议各函数介绍
- ArcGIS Engine中空间参照(地理坐标)相关方法总结