Pagini recente » Cod sursa (job #291190) | Cod sursa (job #336688) | Cod sursa (job #1773628) | Cod sursa (job #717213) | Cod sursa (job #2413779)
#include <bits/stdc++.h>
#define Dim 1004
#define Mod 9973
#define Max 1000000
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
int T,cnt;
bool prim[Max+457];
typedef long long ll;
ll X,A[78502];
void Ciur()
{
for(int div=2;div*div<=Max;div++)
if(prim[div]==0)
{
for(int nr=2*div;nr<=Max;nr+=div) prim[nr]=1;
}
for(int i=2;i<=Max;i++)
if(prim[i]==0) A[++cnt]=i;
}
int main()
{
auto start = chrono::steady_clock::now();
Ciur();
f>>T;
for(int j=1;j<=T;j++)
{
f>>X;
ll ans1=1,ans2=1;
for(int i=1;A[i]*A[i]<=X;i++)
if(X%A[i]==0)
{
ll cont1=1,prod1=A[i];
while(X%A[i]==0)
{
X/=A[i];
prod1*=A[i];
cont1++;
}
ans1*=cont1;
ans2=((ans2*((prod1-1)/(A[i]-1))%Mod)%Mod);
}
if(X>1)
{
ans1*=2;
ans2=((ans2*((X+1)%Mod))%Mod);
}
g<<ans1<<" "<<ans2<<'\n';
}
auto end = chrono::steady_clock::now();
auto diff = end - start;
//cout << chrono::duration <double, milli> (diff).count() << " ms" << endl;
return 0;
}