Pagini recente » Cod sursa (job #1382090) | Cod sursa (job #1907652) | Cod sursa (job #51764) | Cod sursa (job #1419869) | Cod sursa (job #1241338)
#include<fstream>
#define mare 1000001
using namespace std;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
long long n,x,geometrica,numar;
int i,j,suma,t,p,m,OK,k,X[mare],viz[mare];
int main()
{
fin>>t;
for(i=2;i<=mare;i++)
{
if(viz[i]==0)
{
for(j=2;i*j<=mare;j++)
viz[i*j]=1;
X[++k]=i;
}
}
for(i=1;i<=t;i++)
{
fin>>n;
x=n;
numar=suma=1;OK=1;
for(j=1;1LL*X[j]*X[j]<=x && j<=k;j++)
{
if(x%X[j]==0)
{
p=0;
while(x%X[j]==0)
{
x=x/X[j];
p++;
}
geometrica=1;
numar=numar*(p+1)%9973;
for(m=1;m<=p+1;m++)
geometrica=geometrica*X[j];
geometrica--;
geometrica=geometrica/(X[j]-1)%9973;
suma=suma*geometrica%9973;
}
}
if(x!=1)
{
numar=numar*2%9973;
suma=suma*(x+1)%9973;
}
fout<<numar<<" "<<suma<<"\n";
}
return 0;
}