Pagini recente » Cod sursa (job #2293560) | Cod sursa (job #1814588) | Cod sursa (job #2307837) | Cod sursa (job #950684) | Cod sursa (job #2484152)
#include<fstream>
#include<cstring>
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
const int nmax=1000000;
const int mod=9973;
bool p[1000001];
int prime [100001],nrp;
void ciur()
{
int i,j;
memset(p,1, sizeof p);
p[0]=0;
p[1]=0;
for(i=2;i<=nmax;i++)
{
if(p[i]==1)
{
nrp++;
prime[nrp]=i;
for(j=2;j<=nmax/i;j++)
p[i*j]=0;
}
}
}
void rezolva(long long nr)
{
long long d,p,i,nrdiv=1,sumdiv=1,dp=1,sdiv;
i=1;
d=prime[1];
while((d*d<=nr) && (i<=nrp))
{
p=0;
dp=1;
sdiv=1;
while(nr%d==0)
{
p++;
nr=nr/d;
dp=(dp*d)%mod;
sdiv=sdiv+dp;
}
nrdiv=(nrdiv*(p+1))%mod;
sumdiv=(sumdiv*sdiv)%mod;
i++;
d=prime[i];
}
if(nr>1)
{
nrdiv=(nrdiv*2)%mod;
sumdiv=(sumdiv*(1+nr))%mod;
}
fout<<nrdiv<<' '<<sumdiv<<'\n';
}
int main()
{
int t,i;
long long nr;
ciur();
fin>>t;
for(i=1;i<=t;i++)
{
fin>>nr;
rezolva(nr);
}
}