Pagini recente » Statistici Csorvasi Arnold (Arnold) | Statistici FMI Ionut Ciocoiu (cioionut) | Arhiva de probleme | Profil valorosu_300 | Cod sursa (job #3285418)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("elmaj.in");
ofstream fout("elmaj.out");
const long long NMAX=1e6;
const long long MOD=9973;
long long n,t,start,p1,p2,i,j,v[6000001],divi,k,s,Ciur[NMAX+10],d[NMAX+10],x,copie,copie2,nrd,sum,e,y,p,A;
int main()
{
Ciur[0]=Ciur[1]=1;
for(i=1;i<=NMAX;i++)
{
if(Ciur[i]==0)
{
for(j=2;i*j<=NMAX;j++)
{
Ciur[i*j]=1;
}
}
}
for(i=2;i<=NMAX;i++)
{
if(Ciur[i]==0)
{
d[++k]=i;
}
}
fin>>n;
for(i=1;i<=n;i++)
{
fin>>x;
copie=x;
copie2=x;
divi=1;
sum=1;
nrd=1;
while(copie>1)
{
e=0;
while(copie%d[divi]==0)
{
e++;
copie/=d[divi];
}
if(e>0)
{
nrd=nrd*(e+1);
copie2=e+1;
A=d[divi];
p=1;
while(copie2)
{
if(copie2%2==1)
{
p*=A;
}
A=A*A;
copie2/=2;
}
sum=sum*((p-1)/(d[divi]-1))%MOD;
}
divi++;
if(d[divi]*d[divi]>copie && copie>1)
{
nrd=nrd*2;
sum=sum*(copie+1)%MOD;
break;
}
}
fout<<nrd<<" "<<sum<<'\n';
}
return 0;
}