Pagini recente » Cod sursa (job #2909704) | Cod sursa (job #2427443) | Cod sursa (job #3261688) | Cod sursa (job #2653486) | Cod sursa (job #645563)
Cod sursa(job #645563)
#include <fstream.h>
#include <math.h>
//#include <bitset>
//const long MAX_N = 1000005;
const int MOD = 9973;
ifstream f("ssnd.in");
ofstream fout("ssnd.out");
long long N;
long long T, K, P[1000],viz[1000000];
void ciur()
{ long long j,i;
K=0;
for(i=2; i<=1000000; i++)
if(viz[i] == 0)
{
P[++K] = i;
for(j = 2*i; j <=1000000; j =j+ i)
viz[j] = 1;
}
}
void solve() {
long long CT,p1=1,p2=1,p,i,nd = 1, sd = 1;
for( i = 1; i <= K && P[i] * P[i] <= T; i++)
{
CT=T;
if (CT % P[i]) continue;
p = 0;
while(CT % P[i] == 0)
{
CT = CT/P[i];
++p;
}
nd =nd* (p+1);
//p1 = (long long)(pow(P[i], p+1) - 1) % 9973;
//p2 = (long long) pow(P[i]-1, 9973-2) % 9973;
p1=(pow(P[i], p+1) - 1);
p2=p2*(P[i]-1);
//sd = (((sd * p1) % 9973) * p2) % 9973;
sd=(sd*p1)/p2;
}
/*if(N > 1) {
nd *= 2;
sd = (1LL*sd*(N+1) % MOD);
}*/
if(nd==1)
fout<<2<<" "<<T+1;
else
fout << nd << " " << sd % 9973 << "\n";
}
int main() {
long long i;
f>>N;
ciur();
for(i=1; i<=N;i++)
{
f>>T;
solve();
}
return 0;
}