Pagini recente » Cod sursa (job #1846286) | Cod sursa (job #1353919) | Cod sursa (job #3217865) | Cod sursa (job #2775450) | Cod sursa (job #2484112)
#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;
i=1;
d=prime[1];
while((d*d<=nr) && (i<=nrp))
{
p=0;
dp=1;
while(nr%d==0)
{
p++;
nr=nr/d;
dp=(dp*d)%mod;
}
nrdiv=(nrdiv*(p+1))%mod;
sumdiv=(sumdiv*(dp*d-1)/(d-1))%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);
}
}