Pagini recente » Cod sursa (job #1259603) | Cod sursa (job #1771178) | Istoria paginii runda/round1 | Cod sursa (job #2109498) | Cod sursa (job #1848178)
#include <fstream>
#define MOD 9973
#define VAL 1000005
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
int T, cnt, k, e;
int v[VAL], K, nr;
long long N, i, j;
long long NRDIV, P;
long long SUM, NR;
bool ok[VAL];
int main()
{
ok[1]=ok[0]=true;
for (i=2; i<=VAL; i++)
{
if (ok[i]==false)
{
v[++K]=i;
for (j=i*i; j<=VAL; j+=i)
ok[i]=true;
}
}
fin >> T;
for (cnt=1; cnt<=T; cnt++)
{
fin >> N;
SUM=1;
NRDIV=1;
for (k=1; k<=K; k++)
{
e=1;
NR=0;
P=1;
while (N % v[k]==0)
{
e++;
N/=v[k];
NR+=P;
NR%=MOD;
P*=v[k];
P%=MOD;
}
NRDIV*=e;
NRDIV%=MOD;
NR+=P;
NR%=MOD;
SUM*=NR;
SUM%=MOD;
if (N==1)
break;
if (N<=VAL && ok[N]==false)
{
NRDIV*=2;
SUM*=N+1;
SUM%=MOD;
NRDIV%=MOD;
}
}
fout << NRDIV << " " << SUM << '\n';
}
fin.close();
fout.close();
return 0;
}