Pagini recente » Istoria paginii runda/craciun-viteza-2 | Cod sursa (job #1513524) | Cod sursa (job #1523357) | Cod sursa (job #1435669) | Cod sursa (job #1548264)
#include <fstream>
#include <bitset>
#define MOD 9973
#define Int long long
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
bitset<1000010> P;
int k,i,t,nd,expo,p[79000];
Int Pr,sd,sum,fact,n,pr;
int main()
{
p[++k]=2;
for(i=3;i<=1000;i++)
if(!P[i])
{
p[++k]=i;
for(int j=i*i,step=2*i;j<=1000000;j+=step)
P[j]=1;
}
for(;i<=1000000;i+=2)
if(!P[i])
p[++k]=i;
f>>t;
for(;t;t--)
{
f>>n;
nd=1;
sd=1;
for(i=1;i<=k&&p[i]*p[i]<=n;i++)
if(n%p[i]==0)
{
pr=p[i];
Pr=pr%MOD;
expo=1;
sum=1;
fact=1;
while(n%pr==0)
{
fact=(fact*Pr)%MOD;
sum=(sum+fact)%MOD;
expo++;
n/=pr;
}
nd*=expo;
sd=(sd*sum)%MOD;
}
if(n>1)
{
nd*=2;
sd=(sd*(n+1))%MOD;
}
g<<nd<<' '<<sd<<'\n';
}
return 0;
}