poj 1845 Sumdiv
来源:互联网 发布:讲文明知礼仪手抄报 编辑:程序博客网 时间:2024/06/06 02:00
DescriptionConsider two natural numbers A and B. Let S be the sum of all natural divisors of A^B. Determine S modulo 9901 (the rest of the division of S by 9901).InputThe only line contains the two natural numbers A and B, (0 <= A,B <= 50000000)separated by blanks.OutputThe only line of the output will contain S modulo 9901.Sample Input2 3Sample Output15Hint2^3 = 8. The natural divisors of 8 are: 1,2,4,8. Their sum is 15. 15 modulo 9901 is 15 (that should be output).
#include<cstdio>#include<cstdlib>#include<cstring>#include<cmath>#include<iostream>#include<algorithm>#include<vector>#include<map>#include<set>#include<queue>#include<stack>using namespace std;const int inf=0x3f3f3f3f;const double pi=3.14159265358979323846264338327950288L;const double eps=1e-6;#define MOD 9901int prime[100000+100]={0},num_prime=0;void get_prime(int m) //求出m以内的质数并保存到prime数组中{ long long abc[100000]={1,1},i,j; for(i=2;i<m;i++) { if(abc[i]==0) prime[num_prime++]=i; for(j=0;j<num_prime&&i*prime[j]<m;j++) { abc[i*prime[j]]=1; if((i%prime[j])==0) break; } }}long long qpow(long long a,long long n) //求a^n,对MAX取模{ long long ans=1; if(n==0) return 1; a=a%MOD; while(n>0) { if(n%2==1) ans=(ans*a)%MOD; n/=2; a=(a*a)%MOD; } return ans;}long long qsum(long long a,long long n){ if(n==0) return 1; long long cur,ti=qsum(a,(n-1)/2); if(n&1) { cur = qpow(a,(n+1)/2); ti=(ti+ti*cur)%MOD; } else { cur=qpow(a,(n+1)/2); ti=(ti+ti*cur+qpow(a,n))%MOD; } return ti;}int main(){ int i,j,k; long long a,b,ans; get_prime(10000); while(cin>>a>>b) { ans=1; for(i=0;i<num_prime;i++) { if(a%prime[i]==0) { j=0; while(a%prime[i]==0) { j++; a/=prime[i]; } ans=(ans*qsum(prime[i],j*b))%MOD; } } if(a>1) { ans=(ans*qsum(a,b))%MOD; } cout<<ans<<endl; } return 0;}
0 0
- POJ 1845 Sumdiv
- poj 1845-Sumdiv
- poj 1845 Sumdiv
- poj 1845 Sumdiv
- POJ 1845 Sumdiv
- POJ 1845 Sumdiv
- POJ-1845-Sumdiv
- POJ 1845 Sumdiv
- POJ 1845 Sumdiv
- POJ 1845 Sumdiv
- POJ 1845 Sumdiv
- POJ 1845 Sumdiv
- POJ 1845 Sumdiv
- poj 1845 Sumdiv 数论
- poj 1845 sumdiv
- POJ 1845 Sumdiv
- POJ 1845 Sumdiv
- poj 1845--Sumdiv
- 闭包
- 多重背包(动态规划)
- 6.python 相对导入
- N层交换
- python简单操作excel
- poj 1845 Sumdiv
- Flume-ng的原理和使用
- Java系统工具jps原理解析
- JAVA之旅(七)——final关键字 , 抽象类abstract,模板方法模式,接口interface,implements,特点,扩展
- 放球游戏(51nod 1418)模拟
- HTML,CSS,font-family:中文字体的英文名称 (宋体 微软雅黑)
- javaSE 模拟Spring框架的Ioc
- Matika版OpenStack伪生产环境部署-添加Compute节点
- 剑指Offer--面试题11 数值的整数次方