Pagini recente » Monitorul de evaluare | Cod sursa (job #1800477)
#include<fstream>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
int t,i,j,c,d,nr;
long long n,x,s,y,prim[500000];
char ciur[1000001];
int main()
{
f>>t;
ciur[1]=1;
for(i=2;i<=1000000;i++)
{
if(ciur[i]==0)
{
for(j=2*i;j<=1000000;j=j+i)
{
ciur[j]=1;
}
}
}
for(i=1;i<=1000000;i++)
{
if(ciur[i]==0)
{
c++;
prim[c]=i;
}
}
for(i=1;i<=t;i++)
{
f>>n;
x=n;
nr=1;
s=1;
for(j=1;prim[j]*prim[j]<=x;j++)
{
if(x%prim[j]==0)
{
d=0;
y=prim[j];
while(x%prim[j]==0)
{
x=x/prim[j];
d++;
y=y*prim[j];
}
nr=nr*(d+1);
s=s*(y-1)/(prim[j]-1);
s=s%9973;
}
}
if(x>1)
{
nr=nr*2;
s=s*(x+1)%9973;
}
g<<nr<<" "<<s<<'\n';
}
f.close();
g.close();
return 0;
}