HDU 6051原根 + 欧拉函数
来源:互联网 发布:unity3d人物控制脚本 编辑:程序博客网 时间:2024/06/05 23:33
题解:
主要是原根的幂表示[1, p - 1],
然后转换
hint里的公式:
找了一篇证明:http://blog.csdn.net/Clove_unique/article/details/53152473
代码:
#include <cstdio>#include <cstring>#include <algorithm>using namespace std;typedef long long ll;const ll mod = 1e9 + 7;ll m, p;ll getPhi(ll x){ ll ret = x; for(ll i = 2; i * i <= x; ++i) { if(x % i == 0) { while(x % i == 0) x /= i; ret -= ret / i; } } if(x > 1) ret -= ret / x; return ret;}ll get(int n, int fac){ return (ll)fac * fac % mod * (((ll)n * getPhi(n) + (n == 1)) / 2) % mod;}int cal(int x){ int ret = 0; for(int i = 1; (ll)i * i <= x; ++i) { if(x % i == 0) { ret = (ret + get(x / i, i)) % mod; if(i != x / i) ret = (ret + get(i, x / i)) % mod; } } ret -= ((ll)x * (x + 1) / 2) % mod; ret = (ret % mod + mod) % mod; return ret;}int main(){ int t; scanf("%d", &t); int kas = 0; while(t--) { scanf("%lld%lld", &m, &p); ll res = cal(p - 1); printf("Case #%d: %d\n", ++kas, (res * m) % mod); } return 0;}
阅读全文
0 0
- HDU 6051原根 + 欧拉函数
- HDU 6051 If the starlight never fade(原根+欧拉函数)
- Primitive Roots +欧拉函数+原根
- poj1284Primitive Roots【欧拉函数 原根】
- poj-1284(欧拉函数+原根)
- poj1284(欧拉函数、原根)
- 原根,欧拉函数,欧拉定理,费马小定理
- POJ 1284 Primitive Roots (原根,欧拉函数)
- POJ 1284 Primitive Roots 原根(欧拉函数)
- POJ 1284 Primitive Roots (欧拉函数&原根定理)
- poj 1284 Primitive Roots(欧拉函数,原根定理)
- poj 1284 Primitive Roots(原根+欧拉函数)
- POJ 1284 : Primitive Roots - 欧拉函数,原根
- 欧拉函数 素数原根 POJ 1284
- Primitive Roots(Poj1284)(欧拉函数+原根)
- POJ 1284 原根(欧拉函数)
- poj1284 Primitive Roots(原根,欧拉函数)
- poj1284 Primitive Roots:欧拉函数+原根
- UVA156 Ananagrams(字符串处理)
- 2017杭电多校联赛第三场-RXD and dividing (hdu6060)最小生成树
- [Unity]调用GL.IssuePluginEvent()后dll中UnityRenderEvent()不执行的问题
- ocp Oracle.1z0-053 711--123
- HDU 3038 带权并查集
- HDU 6051原根 + 欧拉函数
- Python程序打包成exe可执行文件
- Git和SVN切换
- 黑卡地面分辨率
- window.opener的用法
- 利用maven对项目进行拆分、聚合
- 腾讯云centos7搭建javaweb服务器(亲测成功)
- Linux学习之基础篇_2017.8.2
- javascript的=,==以及===