Pagini recente » Cod sursa (job #2734893) | Cod sursa (job #1433501) | Cod sursa (job #297635) | Cod sursa (job #3231866) | Cod sursa (job #1007828)
#include <fstream>
#include <math.h>
using namespace std;
ifstream fin ("ssnd.in");
ofstream fout ("ssnd.out");
int t, nrp, nrput, aux;
long long nrdiv, sdiv, n, prim[1000001];
bool p[1000001];
void ciur()
{
for (int i=2; i<=1000000; i++)
{
if (p[i]==false)
prim[nrp++]=i;
for (int j=2*i; j<=1000000; j+=i)
p[j]=true;
}
}
void rezolv(int x)
{
nrput=0;
while(n%x==0)
{
nrput++;
n/=x;
}
nrput++;
long long q=pow(x, nrput);
q=q-1;
q/=(x-1);
sdiv*=q;
sdiv%=9973;
nrdiv*=nrput;
nrput=0;
}
int main()
{
ciur();
fin>>t;
for (int i=0; i<t; i++)
{
nrdiv=1;
sdiv=1;
fin>>n;
for (int i=0; prim[i]*prim[i]<=n && prim[i]!=0; i++)
rezolv(prim[i]);
if (n>1)
{
nrdiv*=2;
long long q=n*n;
q=q-1;
q/=(n-1);
sdiv*=q;
sdiv%=9973;
}
fout<<nrdiv<<" "<<sdiv%9973<<"\n";
}
return 0;
}