Pagini recente » Cod sursa (job #2442915) | Cod sursa (job #3204878) | Cod sursa (job #2478689) | Cod sursa (job #710299) | Cod sursa (job #777265)
Cod sursa(job #777265)
#include <fstream>
#include <cmath>
using namespace std;
ifstream fin ("ssnd.in");
ofstream fout ("ssnd.out");
bool v[1000001];
int prim[100000];
void ciur()
{
prim[0]=1;
prim[1]=2;
for(int i=3;i<=1000000;i+=2)
{
if(v[i]==0)
{
prim[++prim[0]]=i;
for(int j=2*i; j<=1000000; j+=i)
v[j]=1;
}
}
}
void desco(long long x)
{
long long nr, sum, t, i, exp1;
nr=sum=1;
for(i=1; prim[i]*prim[i]<=x ;i++)
if(x%prim[i]==0)
{
exp1=1;
t=prim[i];
while(x%prim[i]==0)
{
exp1++;
x=x/prim[i];
t=t*prim[i];
}
nr*=exp1;
sum*=(t-1)/(prim[i]-1)%9973;
}
if(x!=1)
sum*=(x*x-1)/(x-1)%9973,
nr*=2;
fout<<nr<<' '<<sum%9973<<endl;
}
int main()
{
long long n, q;
ciur();
fin>>n;
while(n--){
fin>>q;
desco(q);}
return 0;
}