Pagini recente » Cod sursa (job #2609626) | Cod sursa (job #628410) | Cod sursa (job #2699293) | Cod sursa (job #2690631) | Cod sursa (job #50047)
Cod sursa(job #50047)
#include<stdio.h>
#define mod 9901
int a,b,s,c;
int putere(int x,int n)
{if(n==1) return x%mod;
if(n==0) return 1;
int p=putere(x,n/2);
p=(p*p)%mod;
if(n%2) return (x*p)%mod;
else return p;}
int div(int a,int b)
{int d=2,s=1,d1;
long long nr=0;
while(a%d==0) {a=a/d;nr++;}
nr=nr*b;
if(nr)
{nr=putere(d,nr+1);
nr=(mod+nr-1)%mod;
while(nr%(d-1)) nr=nr+mod;
nr=nr/(d-1);
nr%=mod;
s=(s*nr)%mod;}
d=3;
while(a!=1)
{nr=0;
while(a%d==0) {a=a/d;nr++;}
nr=nr*b;
if(nr)
{nr=putere(d%mod,nr+1);
nr=(mod+nr-1)%mod;
d1=d%mod-1;
if(d1<=0) d1=d1+mod;
while(nr%d1) nr=nr+mod;
nr=nr/d1;
nr%=mod;
s=(s*nr)%mod;}
d=d+2;}
return s;}
int main()
{freopen("sumdiv.in","r",stdin);
freopen("sumdiv.out","w",stdout);
scanf("%d %d",&a,&b);
if(a==1||b==0) printf("1");
else printf("%d",div(a,b));
fclose(stdout);
return 0;}