Pagini recente » Cod sursa (job #416068) | Cod sursa (job #1913263) | Cod sursa (job #1223896) | Cod sursa (job #3132176) | Cod sursa (job #409707)
Cod sursa(job #409707)
#include <stdio.h>
#include <bitset>
using namespace std;
const int L=1000500,mod=9973;
bitset <L> m;
int p[100000];
int main(){
freopen("ssnd.in","r",stdin); freopen("ssnd.out","w",stdout);
int T,i,j,k,q,r1;
long long x,r2,s,t;
//preprocessing
p[1]=2;q=1;
for (i=3;i<L;i+=2)if (!m[i]){p[++q]=i;for (j=3*i;j<L;j+=i<<1)m[j]=1;}
//
scanf("%d",&T);
while (T--){
scanf ("%lld\n",&x);
j=r1=r2=1;
while ((long long)p[j]*p[j]<=x){
s=t=1;k=0;
while (x%p[j]==0){ x/=p[j]; k++; s=(s*p[j])%mod; t=(t+s)%mod; }
r1*=k+1; r2=(r2*t)%mod;
j++;
}
if (x>1){ r1<<=1; r2=(r2*(x+1))%mod;}
printf ("%d %lld\n",r1,r2);
}
return 0;
}