Pagini recente » Cod sursa (job #2088299) | Cod sursa (job #2979812) | Cod sursa (job #562600) | Cod sursa (job #2860699) | Cod sursa (job #1986994)
#include <iostream>
#include <cmath>
#include <fstream>
using namespace std;
ifstream f("ssnd.in");
ofstream g("ssnd.out");
bool c[1000000];
int vp[78500];
long long x,nr,s;
void Nr_Sum_Div()
{
int r,p,i=1;
long long put;
nr=1;
s=1;
r=sqrt(x);
while(vp[i]<=r)
{
p=0;
while(x%vp[i]==0)
{
p++;
x/=vp[i];
}
if(p)
{
nr*=p+1;
put=floor(pow(vp[i],p+1));
s*=(put-1)/(vp[i]-1);
r=sqrt(x);
}
i++;
}
if(x!=1)
{
nr*=2;
s*=x+1;
}
}
void Ciur()
{
int n=0;
int i,j;
for(i=2;i<=1000000;i++)
if(!c[i])
{
vp[++n]=i;
for(j=2*i;j<=1000000;j+=i)
c[j]=1;
}
}
int main()
{
int i,t;
Ciur();
f>>t;
for(i=1;i<=t;i++)
{
f>>x;
Nr_Sum_Div();
g<<nr<<" "<<s<<endl;
}
f.close();
g.close();
return 0;
}