poj1845 Sumdiv 数论
来源:互联网 发布:淘宝联盟怎么合并付款 编辑:程序博客网 时间:2024/06/06 03:57
求A^B的所有约数之和
#include<cstdio>#include<cmath>#include<iostream>#include<algorithm>#include<cstring>using namespace std;#define MOD 9901const int MAXN=10000;int prime[MAXN+1];void getPrime(){ memset(prime,0,sizeof(prime)); for(int i=2;i<=MAXN;i++) { if(!prime[i])prime[++prime[0]]=i; for(int j=1;j<=prime[0]&&prime[j]<=MAXN/i;j++) { prime[prime[j]*i]=1; if(i%prime[j]==0) break; } }}long long factor[100][2];int fatCnt;int getFactors(long long x){ fatCnt=0; long long tmp=x; for(int i=1;prime[i]<=tmp/prime[i];i++) { factor[fatCnt][1]=0; if(tmp%prime[i]==0) { factor[fatCnt][0]=prime[i]; while(tmp%prime[i]==0) { factor[fatCnt][1]++; tmp/=prime[i]; } fatCnt++; } } if(tmp!=1) { factor[fatCnt][0]=tmp; factor[fatCnt++][1]=1; } return fatCnt;}long long pow_m(long long a,long long n)//快速模幂运算{ long long res=1; long long tmp=a%MOD; while(n) { if(n&1){res*=tmp;res%=MOD;} n>>=1; tmp*=tmp; tmp%=MOD; } return res;}long long sum(long long p,long long n)//计算1+p+p^2+````+p^n{ if(p==0)return 0; if(n==0)return 1; if(n&1)//奇数 { return ((1+pow_m(p,n/2+1))%MOD*sum(p,n/2)%MOD)%MOD; } else return ((1+pow_m(p,n/2+1))%MOD*sum(p,n/2-1)+pow_m(p,n/2)%MOD)%MOD;}int main(){ int A,B; getPrime(); while(scanf("%d%d",&A,&B)!=EOF) { getFactors(A); long long ans=1; for(int i=0;i<fatCnt;i++) { ans*=(sum(factor[i][0],B*factor[i][1])%MOD); ans%=MOD; } printf("%I64d\n",ans); } return 0;}
0 0
- poj1845 Sumdiv 数论
- 【数论】【poj1845】Sumdiv
- [POJ1845]Sumdiv(数论+矩乘)
- poj1845--Sumdiv(数论篇3--真滴是数论啊。。。。)
- poj1845 Sumdiv
- POJ1845 Sumdiv
- poj1845 Sumdiv
- poj1845-Sumdiv
- POJ1845:Sumdiv
- poj1845 Sumdiv
- POJ1845------Sumdiv
- poj1845 Sumdiv
- poj1845 Sumdiv
- POJ1845 Sumdiv
- poj1845 Sumdiv(数论,因数和,等比数列,快速幂)
- poj1845——Sumdiv(数论+幂的因子和)
- Sumdiv(poj1845)(数学)
- POJ1845——Sumdiv
- 51NOD1264线段相交
- Parallels Desktop 11 for Mac新增功能
- 168、Excel Sheet Column Title
- PHP的单例模式
- NMEA-0183 协议 ——GPS芯片输出标准格式
- poj1845 Sumdiv 数论
- windows重启mysql命令
- MSBuild入门
- 雪*C语言结构体总结七
- android-柱状图、折线图、x轴、y轴绘制以及实例代码
- NGUI入门学习笔记
- 表达式的计算(C++实现)
- sicily 1176. Two Ends
- 给UITabbarController 和 UINavigationController添加过场动画