Pagini recente » Cod sursa (job #1973815) | Cod sursa (job #2679327) | Cod sursa (job #2660927) | Cod sursa (job #335552) | Cod sursa (job #582272)
Cod sursa(job #582272)
#include<fstream>
#include<math.h>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
int prim[1000001],i,j; long long maxim;
void ciur()
{double a;
a=sqrt(maxim);
for(i=2;i<=a;i++)
prim[i]=1;
for(i=2;i<=a;i++)
if(prim[i])
for(j=i*i;j<=a;j+=i)
prim[j]=0; }
int main()
{ int t,fm,nr,suma,v[1001];
f>>t;
for(j=1;j<=t;j++)
{f>>v[j]; if(maxim<v[j]) maxim=v[j];} ciur();
for(j=1;j<=t;j++)
{ nr=suma=1;
if(prim[v[j]]) {nr*=2; suma*=(1+v[j]);}
else {i=2;
do{fm=0;
while(v[j]%i==0)
{fm++; v[j]/=i;}
nr*=(fm+1);
suma*=(pow(i,fm+1)-1)/(i-1); if(prim[v[j]]==0 ) i++; else i=v[j]; }
while(v[j]!=1);
}g<<nr<<" "<<suma%9973<<'\n';} return 0;
}