Pagini recente » Cod sursa (job #1631202) | Cod sursa (job #545149) | Cod sursa (job #2033658) | Cod sursa (job #2580022) | Cod sursa (job #3142734)
#include <iostream>
#include <fstream>
#define mod 9973
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
int v[1000005];
long long nr[10005] , nrmax , cnt , t , ndiv , sdiv , pwr , b;
int lgput(long long n , long long p){
if(p == 0){
return 1;
}
else if(p == 1){
return n;
}
long long x=lgput(n , p/2);
if(p%2 == 0){
return x*x;
}
else{
return n*x*x;
}
}
int main()
{
fin>>t;
for(int i=1 ; i<=t ; i++){
fin>>nr[i];
if(nr[i] > nrmax)
nrmax=nr[i];
}
v[0]=v[1]=1;
for(int i=2 ; i*i<=nrmax ; i++){
if(v[i] == 0){
for(int j=i*i ; j<=nrmax ; j+=i)
v[j]=1;
}
}
for(int i=2 ; i<=nrmax ; i++)
if(v[i] == 0){
++cnt;
v[cnt]=i;
}
for(int i=1 ; i<=t ; i++){
ndiv=1;
sdiv=1;
for(int j=1 ; v[j]<=nr[i] ; j++){
pwr=0;
if(nr[i]%v[j] == 0){
while(nr[i]%v[j] == 0){
nr[i]/=v[j];
pwr++;
}
}
int c=pwr+1;
ndiv*=c;
if(pwr > 0){
b=v[j];
pwr++;
long long d=lgput(b , pwr);
d--;
d=d/(b-1);
sdiv=sdiv*d%mod;
}
}
fout<<ndiv<<' '<<sdiv<<'\n';
}
return 0;
}