Pagini recente » Cod sursa (job #573789) | Statistici AmSpusCaNuStiu (NuStiuCeNume) | Cod sursa (job #1957047) | Cod sursa (job #1285428) | Cod sursa (job #496966)
Cod sursa(job #496966)
#include <stdio.h>
#include <bitset>
using namespace std;
bitset <1000500> m;
long nr,i,j,k,q,r1,a[100000];
long long x,r2,s,t;
int main()
{
freopen("ssnd.in","r",stdin);
freopen("ssnd.out","w",stdout);
a[1]=2;
q=1;
for(i=3;i<1000500;i+=2)
if(!m[i])
{a[++q]=i;
for(j=3*i;j<1000500;j+=i<<1)
m[j]=1;}
scanf("%ld",&nr);
while (nr--)
{scanf("%ld",&x);
j=r1=r2=1;
while((long long)a[j]*a[j]<=x)
{s=t=1;
k=0;
while(x%a[j]==0)
{x/=a[j];
k++;
s=(s*a[j])%9973;
t=(t+s)%9973;}
r1*=k+1;
r2=(r2*t)%9973;
j++;}
if(x>1)
{r1<<=1;
r2=(r2*(x+1))%9973;}
printf("%ld %ld\n",r1,r2);}
return 0;}