Pagini recente » Cod sursa (job #1209242) | infoarena - comunitate informatica, concursuri de programare | Cod sursa (job #1612075) | Cod sursa (job #1000429) | Cod sursa (job #1162662)
#include <iostream>
#include <fstream>
#define vmax 1000000
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
bool ok[1000005];
int p[80005],np,mod=9973;
int sact,sdiv,nrdiv,val;
long long x;
void Ciur()
{ int i,j;
np=1; p[np]=2;
for(i=3;i<=1000;i+=2)
if (!ok[i])
{
for(j=i*i;j<=vmax;j+=2*i)
ok[j]=1;
}
for(i=3;i<=vmax;i+=2)
if (!ok[i]) {np++; p[np]=i;}
}
void Solve()
{ int i,pw;
nrdiv=1; sdiv=1;
for(i=1;p[i]*p[i]<=x && i<=np;i++)
{ pw=1; sact=1; val=p[i];
while(x%p[i]==0)
{
pw++;
sact+=val;
val=(val*p[i])%mod;
x/=p[i];
}
nrdiv=(nrdiv*pw)%mod;
sdiv=(sdiv*sact)%mod;
}
if (x>1) {nrdiv=(nrdiv*2)%mod; sdiv=(sdiv*((x+1))%mod)%mod;}
g<<nrdiv<<" "<<sdiv<<"\n";
}
int main()
{ int i,t;
Ciur();
f>>t;
for(;t;t--)
{ f>>x;
Solve();
}
return 0;
}