Pagini recente » Cod sursa (job #282577) | Cod sursa (job #2460393) | Cod sursa (job #2459362) | Cod sursa (job #997669) | Cod sursa (job #877057)
Cod sursa(job #877057)
#include<iostream>
#include<fstream>
#include<vector>
using namespace std;
#define Val 9973
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
int T;
vector<int> Prime;
bool viz[1000004];
void ciur(){
Prime.push_back(2);
int i,j;
for(i=3;i<=1000;i+=2){
if(!viz[i]){
for(j=i*i;j<=1000000;j+=i){
viz[j]=1;
}
}
}
for(i=3;i<=1000000;i+=2){
if(!viz[i])
Prime.push_back(i);
}
}
int main(){
ciur();
long long nr=0,nd=1,sd=1,aux,N;
fin>>T;
for(int i=1;i<=T;i++){
fin>>N;
nd=sd=1;
for(unsigned int j=0;j<Prime.size() && Prime[j]*Prime[j]<=N;j++){
if(N%Prime[j]) continue;
nr=0;
aux=1;
while(!(N%Prime[j])){
nr++;
aux*=Prime[j];
N/=Prime[j];
}
if(nr){
nd*=(nr+1);
aux*=Prime[j];
sd = ((sd % Val) * (((aux-1)/(Prime[j]-1)) % Val)) % Val;
}
}
if(N>1)
fout<<2*nd<<" "<<((N+1)*sd)%Val<<"\n";
else
fout<<nd<<" "<<sd<<"\n";
}
return 0;
}