Pagini recente » Cod sursa (job #1526356) | Cod sursa (job #2724519) | Cod sursa (job #1289317) | Cod sursa (job #69386) | Cod sursa (job #581740)
Cod sursa(job #581740)
#include<fstream>
#include<math.h>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
long long prim[1000002];
long long maxim;
void ciur()
{ double o; long long a,b;
o=sqrt(maxim);
for(a=2;a<=o;a++)
prim[a]=1;
for(a=2;a<=o;a++)
if(prim[a])
for(b=a*a;b<=o;b+=a)
prim[b]=0;
}
long long powA(int baza, int exponent)
{int k; long long putere;
putere=1;
for(k=1;k<=exponent+1;k++)
putere*=baza;
return putere;
}
int main()
{ long long nr,suma,j,i; int t,fm,v[100];
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*=(powA(i,fm)-1)/(i-1);
i++;
}while(v[j]!=1);
}g<<nr<<" "<<suma%9973<<'\n';}
}