Pagini recente » Cod sursa (job #406358) | Cod sursa (job #2225687) | Cod sursa (job #2897003) | Cod sursa (job #998623) | Cod sursa (job #3259037)
#include<iostream>
#include<fstream>
#include<vector>
#define LL long long
#define mod 9973
using namespace std;
vector<LL> nrs(1000001,1),prs;
LL ppow(LL x,LL p){
LL pp=1;
while(p){if(p&1){pp=(pp*x)%mod;}x=(x*x)%mod;p>>=1;}
return pp;
}
void sol(LL n,LL &nr, LL &s){
LL d;
for(d=0;prs[d]*prs[d]<=n;d++){if(!(n%prs[d])){
LL pd=0;while(!(n%prs[d])){pd++;n/=prs[d];}
nr*=pd+1;
s=((s%mod)*(((ppow(prs[d],pd+1)-1+mod)%mod*(ppow(prs[d]-1,mod-2)%mod))%mod))%mod;
}
}if(n>1){nr<<=1;s=((s%mod)*(((ppow(n,2)-1+mod)%mod*(ppow(n-1,mod-2)%mod))%mod))%mod;}
}
int main(){
ifstream in("ssnd.in");ofstream out("ssnd.out");nrs[0]=0,nrs[1]=0;
LL n,s,nr;in>>n;for(n=2;n<=1000000;n++){if(nrs[n]){prs.push_back(n);
for(s=2*n;s<=1000000;s+=n){nrs[s]=0;}}}
while(in>>n){s=1,nr=1;
sol(n,nr,s);out<<nr<<" "<<s<<endl;
}
}