poj 1845 Sumdiv
2016-05-25 21:45
435 查看
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;}
相关文章推荐
- 2016/05/25 get和post的区别
- python简单操作excel
- 6.python 相对导入
- N层交换
- linux基本命令(35)——ln命令
- 23种设计模式(11):责任连模式
- mysql 发现系统错误 2报错找不到服务文件 和修改密码
- 神奇的CSS技巧探秘——CSS绘制条纹背景
- Androguard使用[在santoku上]
- POJ 3468 A Simple Problem with Integers线段树成段更新
- The requested list key '#request.localprovi' could not be resolved as a collection/array/map/enumera
- Android studio修改包
- Unix&Linux笔记(5)
- 分区表 fstab
- ffmpeg 2.6.3在Windows系统MinGW的编译
- 5.pyenv的使用---- python多版本及虚拟环境
- 7.0我的发言
- Ion + HttpUtils 网络请求
- 集合框架-Map
- android--view类