hdu 2421 Deciphering Password(约数个数问题)
2016-02-19 15:11
344 查看
http://acm.hdu.edu.cn/showproblem.php?pid=2421
A^B 能够写成 p1^e1 * p2^e2 * .....*pk^ek。(A。B <= 1000000)
求 ∏1^3+2^3+...+(ei+1)^3 % 10007的值。
依据质因子分解定理知A = p1^a1 * p2^a2 *.....* pk^ak,那么A^B = p1^(a1*B) * p2^(a2*B) *.....*pk^(ak*B)。
那么ei = ai*B,带入上式计算。
A^B 能够写成 p1^e1 * p2^e2 * .....*pk^ek。(A。B <= 1000000)
求 ∏1^3+2^3+...+(ei+1)^3 % 10007的值。
依据质因子分解定理知A = p1^a1 * p2^a2 *.....* pk^ak,那么A^B = p1^(a1*B) * p2^(a2*B) *.....*pk^(ak*B)。
那么ei = ai*B,带入上式计算。
#include <stdio.h> #include <iostream> #include <map> #include <set> #include <bitset> #include <list> #include <stack> #include <vector> #include <math.h> #include <string.h> #include <queue> #include <string> #include <stdlib.h> #include <algorithm> //#define LL __int64 #define LL long long #define eps 1e-9 const double PI = acos(-1.0); using namespace std; const int maxn = 1000010; const int mod = 10007; LL A,B; int prime[maxn]; bool flag[maxn]; LL facCnt[1010]; //由于数组开的太大,每次都须要初始化,导致TLE了几次。 int cnt; void getPrime() { memset(flag,false,sizeof(flag)); prime[0] = 0; for(int i = 2; i < maxn; i++) { if(flag[i] == false) prime[++prime[0]] = i; for(int j = 1; j <= prime[0] && prime[j]*i < maxn; j++) { flag[prime[j]*i] = true; if(i % prime[j] == 0) break; } } } void getFac() { LL tmp = A; cnt = 0; memset(facCnt,0,sizeof(facCnt)); for(int i = 1; i <= prime[0]&&prime[i]*prime[i] <= tmp; i++) { if(tmp % prime[i] == 0) { while(tmp%prime[i]==0) { facCnt[cnt]++; tmp /= prime[i]; } cnt++; } if(tmp == 1) break; } if(tmp > 1) { facCnt[cnt++] = 1; } } int main() { getPrime(); int item = 0; while(~scanf("%I64d %I64d",&A,&B)) { getFac(); LL ans = 1; for(int i = 0; i < cnt; i++) { LL s = (((facCnt[i]*B+1)*(facCnt[i]*B+2))/2 )%mod; s = (s*s)%mod; ans = (ans*s)%mod; } printf("Case %d: %I64d\n",++item,ans); } }
相关文章推荐
- C 变量
- webkit几个依赖库在windows下的编译方法
- MongoDB Java Driver 使用
- Go语言基于Socket编写服务器端与客户端通信的实例
- Android模糊处理简单实现毛玻璃效果
- Apple Pay强势来袭,开发者应做的事情
- android4.0触摸屏(touchscreen)以及屏幕按键驱动解析
- C#学习——构造函数和析构函数
- MySQL数据库编码、html页面编码、PHP或html文件本身编码要全部一致。
- 5个典型的JavaScript面试题
- springmvc @ResponseBody返回json 报406 not acceptable
- 对话框中弹窗键盘后,布局变形
- 数学趣题——谁在说谎
- openstack(liberty):部署实验平台(二,简单版本软件安装 part2)
- 搭建自己的流媒体服务器-(1)服务器搭建篇
- Qt Quick学习笔记
- ETL-AWK应用
- Android帧率测试
- 虚拟机是怎么实现的?(转)
- 4-6 求单链表结点的阶乘和