Pagini recente » Cod sursa (job #46187) | Cod sursa (job #2221165) | Cod sursa (job #295335) | Cod sursa (job #1588108) | Cod sursa (job #582320)
Cod sursa(job #582320)
#include<fstream>
#include<math.h>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
int prim[1000001],i,j,maxim;
void ciur() { int k=0;
for(i = 2; i < maxim; ++i) {
if(prim[i] == 0) {
for(j = i+i; j < maxim; j += i) {
prim[j] = 1;
}
}
}
}
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); i++; }
while(v[j]!=1);
}g<<nr<<" "<<suma%9973<<'\n';} return 0;
}