Pagini recente » Cod sursa (job #717109) | Cod sursa (job #2066218) | Cod sursa (job #2532961) | Cod sursa (job #41511) | Cod sursa (job #2083841)
#include <fstream>
#include <cstring>
#define file "ssnd"
#define N 1000000
#define MOD 9973
using namespace std;
ifstream fin(file".in");
ofstream fout(file".out");
long long t,n;
long long d[N],dn,a[N];
inline void desc()
{
dn = 0;
int div = 2;
memset(a,0,sizeof(a));
if(n%div == 0) d[++dn] = div;
while(n%div == 0) n/=div,++a[dn];
++div;
do
{
if(n%div == 0) d[++dn] = div;
while(n%div == 0) n/=div,++a[dn];
if(div * div > n) div = n;
else div+=2;
}while(n > 1);
}
inline void afis()
{
for(int i=1; i<=dn; ++i)
fout<<d[i]<<" "<<a[i]<<endl;
}
inline long long c1()
{
long long sol = a[1] + 1;
sol %= MOD;
for(int i=2; i<=dn; ++i)
sol = (sol*(a[i]+1))%MOD;
return sol;
}
inline void rid_log();
inline void inv_mod();
inline long long c2()
{
long long sol = 1;
for(int i=1; i<=dn; ++i)
sol = (sol*((rid_log(d[i],a[i]+1) - 1) * inv_mod(d[i]-1) % MOD) ) %MOD;
}
int main()
{
fin>>t;
while(t--)
{
fin>>n;
desc();
//afis();
fout<<c1()<<" "<<c2()<<"\n";
}
fin.close();
fout.close();
return 0;
}