Pagini recente » Cod sursa (job #2963177) | Cod sursa (job #821999) | Cod sursa (job #947144) | Cod sursa (job #2774118) | Cod sursa (job #1140100)
#include<fstream>
#include<cmath>
#define MOD 9973
#define maxim 1000005
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
bool viz[maxim];
int v[80000];
int k,n,i,e1,e2,nrdiv=1,sumdiv=1,nr;
void ciur()
{
nr=0;
int i,j;
for(i=2;i<=maxim;i++)
if(viz[i]==0)
{v[++nr]=i;
for(j=i+i;j<=maxim;j+=i)
viz[j]=1;
}
}
int exp(int a,int b)
{
int nr=0;
while(a%b==0
)
{
a/=b;
nr++;
}
return nr;
}
int putere(int a,int k)
{int aux,sol;
aux=a;
sol=1;
while(k)
{
if(k%2==1)sol=(sol*aux);
aux=aux*aux;k/=2;
}
return sol;
}
void calculeaza(int a)
{
nrdiv=1;sumdiv=1;
for(k=1;k*k<=a;k++)
if(a%v[k]==0)
{
e1=exp(a,v[k]);
nrdiv*=(e1+1);
sumdiv*=(((putere(v[k],(e1+1))-1))/(v[k]-1))%MOD;
}
if(nrdiv==1&&sumdiv==1)
g<<2<<" "<<(1+a)%MOD<<'\n';
else
g<<nrdiv<<" "<<sumdiv%MOD<<'\n';
}
int main()
{
int a;
ciur();
f>>n;
for(i=1;i<=n;i++)
{
f>>a;
calculeaza(a);
}
return 0;
}