Pagini recente » Cod sursa (job #2221547) | Cod sursa (job #2537166) | Cod sursa (job #1029460) | Cod sursa (job #2168657) | Cod sursa (job #2262575)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
int ptr(int x,int e)
{
int r=1;
while(e>0)
{
if(e%2==0)
{
x=x*x;
e/=2;
}
else
{
r*=x;
e--;
}
}
return r;
}
void fprimi(int n)
{
int pr=1,s=1;
int p=0;
while (n%2==0)
{
n/=2;
p++;
}
if(p>0) {pr=pr*(p+1);
s=s*(ptr(2,p+1)-1)%9973;}
for(int d=3;d*d<=n;d+=2)
{
p=0;
while(n%d==0)
{
n/=d;
p++;
}
if(p>0) {pr=pr*(p+1);
s=s*(ptr(d,p+1)-1)/(d-1)%9973;}
}
if(n!=1){pr=pr*2;
s=s*(ptr(n,2)-1)/(n-1)%9973;}
fout<<pr<<" "<<s%9973<<endl;
}
int main()
{
int t,n;
fin>>t;
for(int i=1;i<=t;i++)
{
fin>>n;
fprimi(n);
}
return 0;
}