Pagini recente » Cod sursa (job #409496) | Cod sursa (job #2695691) | Cod sursa (job #2999162) | Cod sursa (job #161481) | Cod sursa (job #1687497)
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin ("ssnd.in");
ofstream fout ("ssnd.out");
long long nrt, a, nrdiv=1, sumdiv=1, div1, exp1, ind;
bool x[1000005];
int ciur[8000001];
int main()
{
x[1]=1;
x[0]=1;
for (long long i = 1; i<= 1000001; i++)
{
if (x[i] == 0)
{
ciur[++ind]=i;
if (i * i <= 1000001)
for (long long j = i*i; j<= 1000001; j+=i)x[j]=1;
}
}
int loc=1;
fin >> nrt;
for (int i =1; i<= nrt; i++)
{
fin >> a;
div1 = 2;
sumdiv = 1;
nrdiv = 1;
loc=0;
for(int i=1;ciur[i] <= a/ciur[i];i++)
{
div1 = ciur[++loc];
exp1=0;
while (a% div1 == 0 && a > 1){a = a/div1; exp1++;}
nrdiv*=(exp1+1);
if (exp1!=0)sumdiv*=((pow(div1, exp1+1)-1)/(div1-1));
sumdiv = sumdiv%9973;
}
if (a!=1)
{
nrdiv*=2;
sumdiv *= (a*a-1)/(a-1);
}
sumdiv = sumdiv%9973;
fout << nrdiv << ' ' << sumdiv << '\n';
}
return 0;
}