Pagini recente » Cod sursa (job #3132369) | Cod sursa (job #1757451) | Cod sursa (job #2523376) | Cod sursa (job #2934660) | Cod sursa (job #2632005)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("sumdiv.in");
ofstream fout("sumdiv.out");
long long int v[9901],f[9901],v2[8],v3[8];
int main()
{long long int a,b,cnt=0,d=2,nr=0,n,s=1,s2,s3;
fin>>a>>b;
while(a>1 && d*d<=a)
{
if(a%d==0)
{
nr++;
v2[nr]=d;
}
while(a%d==0)
{
a=a/d;
v3[nr]++;
}
}
if(a>1)
{
nr++;
v2[nr]=a;
v3[nr]++;
}
for(int i=1;i<=nr;i++)
{n=v2[i]%9901;
f[n]=1;
v[1]=n;
cnt=1;
while(f[n]<2)
{
n=(n*v2[i])%9901;
f[n]++;
if(f[n]==1)
{cnt++;
v[cnt]=n;
}
}
s2=(v[(b*v3[i]+1)%9901]-1);
s3=(v2[i]-1);
if(s2<0)
s2=s2+9901;
s=(s*(s2/s3))%9901;
for(int j=0;j<9901;j++)
{f[j]=0;v[j]=0;}
}
fout<<s;
return 0;
}