Pagini recente » Borderou de evaluare (job #2374957) | Borderou de evaluare (job #2667484) | Borderou de evaluare (job #2513474) | Cod sursa (job #348904) | Cod sursa (job #581810)
Cod sursa(job #581810)
#include<fstream>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
long long prim[1000001];
void ciur()
{long long a,b,q,w;
q=1000000; w=1000000;
for(a=2;a*a<=q*w;a++)
prim[a]=1;
for(a=2;a*a<=q*w;a++)
if(prim[a])
for(b=a+a;b*b<=q*w;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 n,nr,suma,j,i;
int t,fm;
f>>t;
ciur();
for(j=1;j<=t;j++)
{ f>>n; nr=suma=1;
if(prim[n])
{nr*=2; suma*=(1+n);}
else
{i=2;
do
{fm=0;
while(n%i==0)
{fm++;
n/=i;}
nr*=(fm+1);
suma*=(powA(i,fm)-1)/(i-1);
if(prim[n]==0 ) i++;
else i=n;
}
while(n!=1);
}
g<<nr<<" "<<suma%9973<<'\n';}
}