lightoj1054 Efficient Pseudo Code(欧拉函数+Divisor function)
来源:互联网 发布:股票开户软件 编辑:程序博客网 时间:2024/05/29 04:54
题目
求
nm 所有约数的和在mod1e9+7 的结果;
思路
数学知识点
n可以写成n=px11∗px22∗... ,那么nm=pm∗x11∗pm∗x22...
这样就可以用下面这个公式求解了,具体数学看上面的链接,这里x取1;
σx(n)=∏ri=1p(ai+1)xi−1pxi−1
int prime[10000];void init() { bool mark[100000] = {false}; for (int i = 2;i < 100000;++i) { if (!mark[i]) { prime[++prime[0]] = i; mark[i] = true; for (long long j = 1ll*i * i;j < 100000;j += i) mark[j] = true; } } }long long calc(long long a, long long b) { long long ans; ans = QMOD(a, b) - 1; // 这个地方用的逆元 ans = ans * QMOD(a - 1, MOD - 2) % MOD; while(ans < 0) ans += MOD; if (ans > MOD) ans %= MOD; return ans;}int main(int argc, const char * argv[]){ // freopen("/Users/jamesqi/Desktop/in.txt","r",stdin); // freopen("/Users/jamesqi/Desktop/out.txt","w",stdout); // ios::sync_with_stdio(false); // cout.sync_with_stdio(false); // cin.sync_with_stdio(false); int kase;cin >> kase; init(); while(kase--) { long long n, m;cin >> n >> m; vector<ii> buff; for (int i = 1;i <= prime[0] && prime[i] * prime[i] <= n;++i) { if (n % prime[i] == 0) { ii t(prime[i], 0); while(n % prime[i] == 0) { n /= prime[i]; ++t.second; } buff.push_back(t); } } if (n > 1) buff.push_back(ii(n, 1)); long long ans = 1ll; for (int i = 0;i < (int)buff.size();++i) ans = ans * calc(buff[i].first, buff[i].second*m + 1) % MOD; printf("Case %d: %lld\n", ++nCase, ans); } // showtime; return 0;}
0 0
- lightoj1054 Efficient Pseudo Code(欧拉函数+Divisor function)
- LightOj 1054 Efficient Pseudo Code
- Light oj 1054 - Efficient Pseudo Code
- Light OJ 1054 - Efficient Pseudo Code
- 欧拉函数 (Euler Function)
- lightoj 1054 - Efficient Pseudo Code 求所有n^m的所有因子和
- Light OJ 1054 Efficient Pseudo Code 求n^m的约数和
- LightOJ 1054 - Efficient Pseudo Code (求n^m的因子和)
- The Euler function(欧拉函数)
- hdu2824 The Euler function (欧拉函数)
- hdu2824 The Euler function 欧拉函数
- hdu2824 The Euler function 欧拉函数
- 2824 The Euler function【欧拉函数】
- The Euler function【欧拉函数】
- hdu5597GTW likes function 欧拉函数
- hdu5597GTW likes function+欧拉函数
- 欧拉函数(Euler' totient function )
- hdu2824 The Euler function 欧拉函数模板题
- Electron学习笔记Part1-安装与配置
- WebView中遇见的一些问题
- 配置 VLC 以播放 RTSP/RTP 流
- 第42篇一对多按原型图做(一)及array_diff及PHP array_count_values 及array_diff_assoc
- Opengl函数(3)
- lightoj1054 Efficient Pseudo Code(欧拉函数+Divisor function)
- 欢迎使用CSDN-markdown编辑器
- 微信公众帐号开发教程第18篇-应用实例之音乐搜索
- Flume-NG源码阅读之Interceptor
- Fiddler大师之路系列(二)
- git pull时报错There is no tracking information for the current branch
- 平安内部推荐
- noi-1927-大整数的因子
- 微信公众平台申请测试接口URL和TOKEN的配置,怎么在本地让微信能通过80端口访问