Pagini recente » Cod sursa (job #2889302) | Cod sursa (job #1176698) | Cod sursa (job #1181057) | Monitorul de evaluare | Cod sursa (job #2578069)
#include <bits/stdc++.h>
#define ULL unsigned long long
#define MOD (ULL)9973
using namespace std;
ifstream in("ssnd.in");
ofstream out("ssnd.out");
int t,nrD,ciur[100000],nrC;
ULL nr,S1,S2;
ULL Div[40],Put[40];
bitset <1000001> viz;
void Ciur()
{
for(int i=2;i<=1000000;i++)
if(!viz[i])
{
ciur[++nrC]=i;
for(int j=2*i;j<=1000000;j+=i)
viz[j]=1;
}
}
int main()
{
in>>t;
Ciur();
while(t--)
{
in>>nr;
nrD=0;
for(int i=1;ciur[i]*ciur[i]<=nr && i<=nrC;i++)
if(nr%ciur[i]==0)
{
Div[++nrD]=ciur[i];
Put[nrD]=0;
while(nr%ciur[i]==0)
{
nr/=ciur[i];
Put[nrD]++;
}
}
if(nr!=1)
{
Div[++nrD]=nr;
Put[nrD]=1;
}
S1=1;
for(int i=1;i<=nrD;i++)
S1*=Put[i]+1;
S2=1;
for(int i=1;i<=nrD;i++)
S2=(ULL)(S2*( ( pow(Div[i],Put[i]+1)-1 )/( Div[i]-1 ) ) )%MOD;
out<<S1<<' '<<S2<<'\n';
}
return 0;
}