Pagini recente » Cod sursa (job #1827403) | Cod sursa (job #2307672) | Cod sursa (job #671842) | Cod sursa (job #1328293) | Cod sursa (job #1379303)
#include<cstdio>
#define nrmax 1000000
using namespace std;
char ciur[nrmax+1];
void ciurr(){
long long d,i;
d=2;
while(d*d<=nrmax){
for(i=2;i*i<=nrmax;i++){
ciur[d*i]=1;}
d++;
while(ciur[d]==1){
d++;}}}
long long suma(long long nr){
long long sumdiv,i,f,p;
sumdiv=1;
for(i=2;i<=nr;i++){
if(ciur[i]==0){
f=1;
p=0;
while(nr%i==0){
nr=nr/i;
p++;
f=f*i;}
if(p!=0){
f=f*i-1;
sumdiv*=(f/(i-1));
sumdiv%=9973;}}}
if(nr!=1)
sumdiv*=(nr*nr-1)/(nr-1);
sumdiv%=9973;
return sumdiv;}
long long nrdiv(long long nr){
long long d=2,p,tau=1;
while(nr>1){
p=0;
while(nr%d==0){
nr=nr/d;
p++;}
tau*=(p+1);
tau%=9973;
d++;}
return tau;}
int main()
{
freopen("ssnd.in","r",stdin);
freopen("ssnd.out","w",stdout);
long long n,i,nr,sdiv,nd;
scanf("%lld",&n);
ciurr();
for(i=1;i<=n;i++){
scanf("%lld",&nr);
nd=nrdiv(nr);
sdiv=suma(nr);
printf("%lld %lld\n",nd%9973,sdiv%9973);}
return 0;
}