Pagini recente » Cod sursa (job #124894) | Cod sursa (job #578366) | Cod sursa (job #1226165) | Cod sursa (job #1834987) | Cod sursa (job #1706638)
#include <stdio.h>
#include <stdlib.h>
#define MOD 9973
long long multiply(long long a, long long n){
long long p=0LL;
while(n>0){
if(n%2==1)
p=(p+a)%MOD;
a=(a+a)%MOD;
n/=2;
}
return p;
}
long long exponentiate(long long a, long long n){
long long p=1LL;
while(n>0){
if(n%2==1)
p=multiply(p, a);
a=multiply(a, a);
n/=2;
}
return p;
}
int main(){
int n, i;
FILE*fi,*fo;
fi=fopen("ssnd.in","r");
fo=fopen("ssnd.out","w");
fscanf(fi,"%d", &n);
for(i=0;i<n;i++){
long long x;
fscanf(fi,"%lld", &x);
long long div=2;
long long numdiv=1;
long long sumdiv=1;
while(div*div<=x){
if(x%div==0){
long long b=div%MOD, exp=1;
while(x%div==0){
b=multiply(b, div);
exp++;
x/=div;
}
numdiv=multiply(numdiv, exp);
sumdiv=multiply(multiply(sumdiv, b-1), exponentiate(div-1, MOD-2));
}
div++;
}
if(x>1){
numdiv=(numdiv*2)%MOD;
sumdiv=multiply(multiply(sumdiv, exponentiate(x, 2)-1), exponentiate(x-1, MOD-2));
}
fprintf(fo,"%lld %lld\n", numdiv, sumdiv);
}
fclose(fi);
fclose(fo);
return 0;
}