Pagini recente » Cod sursa (job #2071722) | Cod sursa (job #1600638) | Cod sursa (job #3148019) | Cod sursa (job #2234433) | Cod sursa (job #1465264)
#include<cstdio>
#define mod 9973
using namespace std;
char ciur[1000010];
long long prime[80000],div[30];
void ciurr(long long nrmax){
long long prim=2,m;
while(prim*prim<=nrmax){
for(m=prim;m<=nrmax/prim;m++)
ciur[m*prim]=1;
prim++;
while(ciur[prim]==1)
prim++;
}
for(m=2;m<=nrmax;m++)
if(ciur[m]==0){
prime[0]++;
prime[prime[0]]=m;
}
}
int main (){
freopen("ssnd.in","r",stdin);
freopen("ssnd.out","w",stdout);
long long sum,t,i,q,n,nrdiv,put,p;
ciurr(1000000);
scanf("%lld",&t);
for(q=1;q<=t;q++){
scanf("%lld",&n);
sum=1;
nrdiv=1;
for(i=1;i<=prime[0]&&prime[i]*prime[i]<=n;i++)
if(n%prime[i]==0){
put=0;
p=1;
while(n%prime[i]==0){
put++;
p*=prime[i];
n/=prime[i];
}
p*=prime[i];
nrdiv=(nrdiv*(put+1))%mod;
sum=((sum*(p-1))/(prime[i]-1))%mod;
}
if(n!=1){
nrdiv=(nrdiv*2)%mod;
sum=(sum*(n+1))%mod;
}
printf("%lld %lld\n",nrdiv,sum);
}
return 0;
}