POJ 1845 二分+素因子分解
来源:互联网 发布:网站美工 编辑:程序博客网 时间:2024/05/18 02:30
题意:求a^b的因子的和。
对a进行素因子分解a=p1^k1*p2^k2*...*pn^kn则根据成型函数的性质有s=(1+p1+p1^2+p1^3...p1^(k1*b))*....()
等比数列直接二分求前n项和即可。
#include <iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;#define maxn 30000bool isprime[maxn];int prime[maxn],nprime;typedef long long int64;int64 modmult(int64 a,int64 b,int64 n)//a*b%n{ a%=n; int64 ret; for(ret=0; b; a=(a<<1)%n,b>>=1) if(b&1) ret=(ret+a)%n; return ret;}int64 modular(int64 a,int64 b,int64 n)//renturn a^b%n{ int64 ans=1; a%=n; while(b) { if(b&1) ans=modmult(ans,a,n),b--; b>>=1; a=modmult(a,a,n); } return ans;}void getprime(){ memset(isprime,1,sizeof(isprime)); long long i,j; nprime=0; for(i=2; i<maxn; i++) if(isprime[i]) { prime[nprime++]=i; for(j=i*i; j<maxn; j+=i) isprime[j]=0; }}long long fac[100][2],tol;void getfac(int n){ tol=0; int x=n; memset(fac,0,sizeof(fac)); for(int i=0; prime[i]*prime[i]<=n; i++) if(x%prime[i]==0) { fac[tol][0]=prime[i]; while(x%prime[i]==0) fac[tol][1]++,x/=prime[i]; tol++; } if(x>1) fac[tol][0]=x,fac[tol++][1]++;}long long getsum(long long a,long long k,long long m){ if(k==1) return a%m; if(k&1) return (a+modmult(getsum(a,k/2,m),(a+modular(a,k/2+1,m))%m,m))%m; return modmult(getsum(a,k/2,m),1+modular(a,k/2,m),m);}int main(){ getprime(); int a,b; long long ans; while(~scanf("%d%d",&a,&b)) { if(a==1||b==0) { puts("1"); continue; } ans=1; getfac(a); for(int i=0; i<tol; i++) { fac[i][1]*=b; ans=(ans*(getsum(fac[i][0],fac[i][1],9901)+1))%9901; } ans=(ans%9901+9901)%9901; printf("%d\n",ans); } return 0;}
- POJ 1845 二分+素因子分解
- poj 1845 Sumdiv(二分递归求等比数列+素因子分解)
- POJ 2773 happy2006 (素因子分解+容斥原理+二分)
- poj 1845(快速幂+二分计算等比数列和+大数因子分解+因子和计算+模除溢出)
- poj 1845 Sumdiv ,质因子分解
- POJ 1365 Prime Land(素因子分解)
- POJ 2649 Factovisors(素因子分解)
- poj 2992(因子分解。。。。)
- POJ 1365 因子分解
- SGU154 Factorial 【二分答案】【n!素因子分解】
- HDU 3641 Treasure Hunting(阶乘素因子分解+二分)
- HDU 3641 Treasure Hunting(阶乘素因子分解+二分)
- POJ 2992 质因子分解
- poj 2429 (分解质因子)
- POJ 2992 Divisors(阶乘的素因子分解)
- POJ 1811 Prime Test 素性测试 分解素因子
- POJ 3904 Sky Code(素因子分解+容斥)
- POJ 2429 -- miller-rabin素数测试,Pollard_rho素因子分解
- hdu 1509 Windows Message Queue(优先队列)
- 记第一次代码评审后感
- 百度地图API配置
- 如何解决加载大图片时内存溢出的问题 OOM
- Android中几种定时器的总结和比较
- POJ 1845 二分+素因子分解
- CF #136Div2 D. Little Elephant and Array
- linux(ubuntu12.04 )及S3C2440 开发板安装和使用sqlite
- 比较好的jquery特效网站
- IOS学习之路十(仿人人滑动菜单Slide-out Sidebar Menu)
- Gao the Grid zoj3647(数论)
- changed for oe-core kernel
- 经典SQL语句大全
- URI、URL、URN的区别