Pagini recente » Cod sursa (job #2374964) | Cod sursa (job #1185587) | Cod sursa (job #1281356) | Cod sursa (job #963314) | Cod sursa (job #582308)
Cod sursa(job #582308)
#include<fstream>
#include<math.h>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
int prim[1000001],i,j,maxim;
void ciur()
{for(i=2;i*i<=maxim;i++)
prim[i]=1;
for(i=2;i*i<=maxim;i++)
if(prim[i])
for(j=i*i;j*j<=maxim;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;
}