Pagini recente » Cod sursa (job #3256474) | Cod sursa (job #347071) | Cod sursa (job #146773) | Cod sursa (job #2835667) | Cod sursa (job #1121320)
#include <cstdio>
using namespace std;
long long i,np,p[1000002],t;
long long P[100000],n,sd,nd,term,sum,cnt;
void ciur();
int main()
{
freopen("ssnd.in","r",stdin);
freopen("ssnd.out","w",stdout);
ciur();
scanf("%lld",&t);
for(;t;t--)
{
sd=1;nd=1;
scanf("%lld",&n);
for(i=1;i<=np&&P[i]*P[i]<=n;i++)
if(n%P[i]==0)
{
sum=1;cnt=1;term=1;
while(n%P[i]==0)
{
cnt++;
term*=P[i];
sum+=term;
n/=P[i];
}
sd=(sd*sum)%9973;
nd*=cnt;
}
if(n>1){sd=sd*(1+n)%9973;nd*=2;}
printf("%lld %lld\n",nd,sd);
}
return 0;
}
void ciur()
{
P[1]=2;np=1;
for(i=3;i<=1000;i+=2)
if(!p[i])
{
P[++np]=i;
for(int j=i*i;j<=1000000;j+=2*i)p[j]=1;
}
for(;i<=1000000;i+=2)
if(!p[i])
p[++np]=i;
}