Pagini recente » Cod sursa (job #130216) | Cod sursa (job #1447735) | Cod sursa (job #1342712) | Cod sursa (job #2274169) | Cod sursa (job #950060)
Cod sursa(job #950060)
#include<fstream>
#define MAX 1000001
#define IN "ssnd.in"
#define OUT "ssnd.out"
#define MODULO 9973
using namespace std;
ifstream in(IN);
ofstream out(OUT);
int T,nrp;
bool prim[MAX];
int p[MAX];
int N;
void ciur();
void rezolva();
int putere(int x, int p);
int main()
{
ciur();
in>>T;
for(int i=0; i<T; i++)
rezolva();
in.close();
out.close();
return 0;
}
void ciur()
{
for(int i=2; i <= MAX; i++)
if(prim[i]==0)
{
for(int j=i+i; j <= MAX; j+=i)
prim[j]=1;
p[++nrp]=i;
}
}
void rezolva()
{
in>>N;
int ndiv=1;
int sdiv=1, a1, b2;
for(int i=1; i <= nrp && N>1; i++)
{
if(N%p[i])
continue;
int pp=0;
while(N%p[i]==0)
++pp,
N/=p[i];
ndiv*=(pp+1);
a1 = ( putere( p[i], pp+1 ) - 1 );
b2 = ( a1 / (p[i] - 1) );
sdiv = sdiv * b2 % MODULO;
}
out<<ndiv<<' '<<sdiv<<'\n';
}
int putere(int x, int p)
{
int sol=1;
while(p)
{
if(p%2==1)
sol=x*sol;
x*=x;
p/=2;
}
return sol;
}