Pagini recente » Cod sursa (job #1687572) | Cod sursa (job #2371431) | Cod sursa (job #376541) | Cod sursa (job #2720944) | Cod sursa (job #922882)
Cod sursa(job #922882)
#include<cstdio>
#include<vector>
#include<cmath>
#include<fstream>
using namespace std;
#define LIM 1000001
#define MOD 9973
#define pb push_back
int T , nr , s , pu ;
long long d;
long long N;
vector<int>p;
bool v[LIM] , sw;
void ciur();
int main()
{
ciur();
ifstream f("ssnd.in");
ofstream g("ssnd.out");
f>>T;
for( int i = 1 ; i <= T ; ++i )
{
f>>N;
nr = 1;
s = 1;
sw = 0;
for(int j = 0 ; j < (int)p.size() && p[j] <= N ; ++j)
{
pu = 1;
d = p[j];
while(N%d==0)
d*=p[j],pu++,sw=1;
N/=(d/p[j]);
nr*=pu;
s=(1ll*s*(1ll*(d-1)/(p[j]-1)))%MOD;
}
if(!sw)
g<<"2 "<<(N+1)%MOD<<"\n";
else
g<<nr<<" "<<s<<"\n";
}
return 0;
}
void ciur()
{
for(int i = 2 ; i <= LIM ; ++i )
{
if(v[i])continue;
p.pb(i);
for(int j = 2 ; j*i <= LIM ; ++j )
v[i*j] = 1;
}
}