Pagini recente » Cod sursa (job #2079534) | Cod sursa (job #989694) | Cod sursa (job #1452196) | Cod sursa (job #422114) | Cod sursa (job #1342493)
#include <fstream>
#include <bitset>
#define DIM 10001
#define MOD 9973
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
long long T,N,prim[10000],k,sol,s;
bitset <DIM> ciur;
inline int pow(int x, int p) {
int rez = 1;
x %= MOD;
for(; p; p >>= 1) {
if(p & 1) {
rez *= x;
rez %= MOD;
}
x *= x;
x %= MOD;
}
return rez;
}
int main(){
ciur[0]=ciur[1]=1;
for(int i=2;i<=DIM;i++)
if(!ciur[i]){
prim[++k]=i;
for(int j=i+i;j<=DIM;j+=i)
ciur[j]=1;
}
fin>>T;
while(T--){
fin>>N;
sol=1;
s=1;
for(int i=1;prim[i]*prim[i]<=N && i<=k;i++){
if(N%prim[i])
continue;
int nr=0;
if(N%prim[i]==0){
while(N%prim[i]==0)
nr++,N/=prim[i];
sol*=(nr+1);
long long p1=(pow(prim[i],nr+1)-1)%MOD;
long long p2=pow(prim[i]-1,MOD-2)%MOD;
s=(((s*p1)%MOD)*p2)%MOD;
}
}
if(N>1){
sol*=2;
s=(1LL*s*(N+1))%MOD;
}
fout<<sol<<" "<<s<<"\n";
}
fin.close();fout.close();
return 0;
}