Pagini recente » Cod sursa (job #379065) | Cod sursa (job #2918906) | Cod sursa (job #3134421) | Cod sursa (job #1269813) | Cod sursa (job #416661)
Cod sursa(job #416661)
#include<fstream>
using namespace std;
ofstream g("ssnd.out");
const long long mod=9973, maxn=1000009;
long long s, nr;
long long pou(long long a, long long b){
long long f=1;
a=a%mod;
while(b){
if((b&1)){
f*=a;
f=f%mod;
}
a=a*a;a=a%mod;b=b>>1;
}
return f;
}
long long inv(long long x){
long long m=mod-2, p=1;
p=pou(x, m);
return p;
}
void dec(long long x){
long long d, e, ax;
s=nr=1;
for(d=2;d*d<=x;d++){
e=0;
if(x%d==0){
while(x%d==0){
e++;
x/=d;
}
}
if(e){
nr=nr*(e+1);
nr=nr%mod;
ax=pou(d,e+1)-1;
if(ax<0) ax+=mod;
if(ax>=mod) ax-=mod;
s=s*ax;
s=s%mod;
s=s*inv(d-1);
s=s%mod;
}
}
if(x!=1){
nr=(nr<<1);
nr=nr%mod;
ax=pou(x, 2)-1;
if(ax<0) ax+=mod;
if(ax>=mod) ax-=mod;
s=s*ax;
s=s%mod;
s=s*inv(x-1);
s=s%mod;
}
g<<nr<<' '<<s<<'\n';
}
int main(){
long long i, t, x;
ifstream f("ssnd.in");
f>>t;
for(i=0;i<t;i++){
f>>x;
dec(x);
}
f.close();
g.close();
return 0;
}