Pagini recente » Cod sursa (job #717709) | Cod sursa (job #1618621) | Cod sursa (job #929213) | Cod sursa (job #228253) | Cod sursa (job #620583)
Cod sursa(job #620583)
#include <fstream>
using namespace std;
const int NMAX = 1000005;
const int MOD = 9973;
int prime[NMAX];
bool viz[NMAX];
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
void ciur()
{
int i, j;
viz[0]=1;
viz[1]=1;
for (i=2; i*i<NMAX; i++)
if (!viz[i])
for (j=i+i; j<NMAX; j+=i)
viz[j]=1;
for (i=2; i<NMAX; i++)
if (!viz[i])
prime[++prime[0]]=i;
}//ciur
void rez(long long n)
{
long long p,d, sd, q, i;
i=1;
d=1;
sd=1;/////
for (i=1; prime[i]*prime[i]<=n; i++)
if (n%prime[i]==0)
{
for (p=0, q=prime[i]; n%prime[i]==0; n/=prime[i], p++, q*=prime[i]);
d*=p+1;
sd=sd*(q-1)/(prime[i]-1)%MOD;////
}//if
if (n>1)
{
d*=2;
sd = (sd*(n+1) % MOD);
}//if
fout<<d<<" "<<sd<<"\n";
}//rez
int main()
{
long long n, t;
ciur();
fin>>t;
while (t--)
{
fin>>n;
rez(n);
}//while
return 0;
}