Pagini recente » Cod sursa (job #3131289) | Cod sursa (job #3177051) | Cod sursa (job #1597672) | Cod sursa (job #1508111) | Cod sursa (job #968021)
Cod sursa(job #968021)
#include<fstream>
using namespace std;
const int MAXN=1000001;
bool p[MAXN];
int prim[78498];
int k,t,n,cn,i,put,nrprim;
long long suma,card;
ifstream fin("ssnd.in");
ofstream fout("ssnd.out");
int main()
{
for (int i=2;i<MAXN;++i)
{
if (!p[i])
{
prim[nrprim++]=i;
for (int j=i+i;j<MAXN;j+=i)
p[j]=true;
}
}
fin>>t;
for (k=1;k<=t;++k)
{
fin>>n;
cn=n;
suma=card=1;
for (i=0;i<78499 && prim[i]<=cn && cn!=1;++i)
{
put=0;
if (cn%prim[i]==0)
{
while (cn%prim[i]==0)
{
++put;
cn/=prim[i];
}
}
card=(card*(put+1))%9973;
suma=(suma*(((int)pow(prim[i],put+1)-1)/(prim[i]-1)))%9973;
}
fout<<card<<' '<<suma<<'\n';
}
fin.close();
fout.close();
return 0;
}