Pagini recente » Cod sursa (job #1799509) | Cod sursa (job #2875731) | Cod sursa (job #1123722) | Cod sursa (job #1446288) | Cod sursa (job #1795896)
# include <fstream>
# include <bitset>
# define DIM 1000010
# define MOD 9973
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
bitset <DIM> f;
int d[2*DIM/10],t,k,i,j,r,ndiv,sdiv,p,nr;
long long n,x,y;
int euclid(long long a,long long b,long long &x,long long &y){
if(!b){
x=1;
y=0;
return a;
}
long long xa,ya,d=euclid(b,a%b,xa,ya);
x=ya;
y=xa-(a/b)*ya;
}
int main () {
for(i=2;i<=DIM-5;i++){
if(!f[i]){
d[++k]=i;
for(j=2*i;j<=DIM-5;j+=i)
f[j]=1;
}
}
fin>>t;
for(r=1;r<=t;r++){
fin>>n;
i=1;
ndiv=1;
sdiv=1;
while(n!=1&&i<=k){
p=1;
nr=0;
while(n%d[i]==0){
n/=d[i];
p*=d[i];
p%=MOD;
nr++;
}
ndiv*=(nr+1);
if(nr){
p*=d[i];
p%=MOD;
p--;
if(p<0)
p+=MOD;
euclid(d[i]-1,MOD,x,y);
if(x<0)
x+=MOD;
x%=MOD;
p*=x;
p%=MOD;
sdiv*=p;
sdiv%=MOD;
}
i++;
}
if(n>1){
ndiv*=2;
n%=MOD;
p=n;
p*=p;
p%=MOD;
p--;
if(p<0)
p+=MOD;
euclid(n-1,MOD,x,y);
if(x<0)
x+=MOD;
x%=MOD;
p*=x;
p%=MOD;
sdiv*=p;
sdiv%=MOD;
}
fout<<ndiv<<" "<<sdiv<<"\n";
}
return 0;
}