Pagini recente » Cod sursa (job #2770330) | Cod sursa (job #2511561) | Cod sursa (job #884250) | Cod sursa (job #1733623) | Cod sursa (job #1140987)
#include<fstream>
#include<cmath>
#include<vector>
#define MOD 9973
#define maxim 1000005
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
bool viz[maxim];
vector<int>v;
int k,n,i,e1,e2,nrdiv,sumdiv,nrprime,fa;
void ciur()
{
nrprime=0;
int i,j;
for(i=2;i<=maxim;i++)
if(viz[i]==0)
{v.push_back(i);
for(j=i+i;j<=maxim;j+=i)
viz[j]=1;
}
}
void calculeaza(int nr)
{
nrdiv=1;sumdiv=1;
i=0;
while(i<v.size()&&1LL*v[i]*v[i]<=nr)
{
if(nr%v[i]==0)
{
fa=1;e1=0;
while(nr%v[i]==0)
{
nr/=v[i];
fa=(fa*v[i])%MOD;
e1++;
}
nrdiv*=(e1+1);
sumdiv*=((fa-1)/(v[i]-1))%MOD;
}
i++;
}
if(nr>1){nrdiv*=2;sumdiv*=(nr+1);}
g<<nrdiv<<" "<<sumdiv%MOD<<'\n';
}
int main()
{
int a,i;
ciur();
f>>n;
for(i=1;i<=n;i++)
{
f>>a;
calculeaza(a);
}
g<<'\n';
return 0;
}